第一个事件结束后调用一个事件
Call an event once the first event has finished
在一个事件完成动画制作后,我在调用一个事件时遇到问题。
我有两个项目在进行中。我试图实现的是,当第一个事件完全完成时(它由点击功能控制),然后我想运行第二个事件,它将在我的链接中消失。当#slidingMenu动画化时,我尝试应用.done函数,但动画完成后链接不会淡入,它们只是保持静止。
菜单(点击)
$(function () {
window.status = 0;
$('#menu').click(function () {
if ($('header').is('.open')) {
var open = $('header').is('.open');
$('#slideWrapper')['slide' + (open ? 'Up' : 'Down')](400);
$('header').animate({
bottom: (open ? '-' : '+') + '=200'
}, 400, function () {
$('header').removeClass('open');
});
if ($('.navFooter button').hasClass('activetoggle')) {
$('.navFooter button').removeClass('activetoggle');
$('.navFooter button').addClass('slidingPanel');
$('.navFooter button').text('Footer');
}
if ($('.gn-icon-menu').hasClass('activetoggle')) {
$('.gn-icon-menu').removeClass('activetoggle');
$('.gn-icon-menu').addClass('gn-icon-menu');
}
}
if (window.status == 0) {
$('#slidingMenu').stop().animate({
left: '0px'
}, 500);
window.status = 1;
$('#slidingMenu').addClass('open');
} else {
$('#slidingMenu').stop().animate({
left: '-100%'
}, 500);
window.status = 0;
$('#slidingMenu').removeClass('open');
}
$('#slidingMenu').click(function () {
if ($('#slidingMenu').is('.open')) {
$('#slidingMenu').stop().animate({
left: '-100%'
}, 500);
window.status = 0;
$('#slidingMenu').removeClass('open');
}
});
});
})
菜单链接淡入
$.when.apply(this, '#slidingMenu').done(function() {
$('.menu-item').each(function(i) {
$(this).fadeOut(0).delay(1000*i).fadeIn(1850);
});
});
http://jsfiddle.net/xhnsnbrz/7/
您可以向animate
函数添加回调函数,该函数在动画完成时运行:
$(element).animate(options, timeout, callbackFunction);
所以在你的情况下,你可以把你的fadeOut放在一个函数里:
$('#slidingMenu').stop().animate({
left: '0px'
}, 500, function(){
$('.menu-item').each(function(i) {
$(this).fadeOut(0).delay(1000*i).fadeIn(1850);
});
});
工作jsFiddle
如您所见,菜单项是短暂可见的,因为它们只有在动画完成后才会隐藏。更好的方法是在开始动画之前进行隐藏,并且只在回调中执行fadeIn
:
$('.menu-item').fadeOut(0); // no need for an each here
$('#slidingMenu').stop().animate({
left: '0px'
}, 500, function(){
$('.menu-item').each(function(i) {
$(this).delay(1000*i).fadeIn(1850);
});
});
还有一个jsFiddle
我要做的是在第一个事件结束时将一个变量设置为True。例如
check=错误
Your_event_1check=真实
if(check==True):Your_event_2
相关文章:
- 使用类从一个标记中双击事件
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- 导航到特定事件的另一个变量页面
- 来自文档或下一个静态父级的事件委派
- 在创建对象后附加一个jquery事件
- 将添加一个相同类型的事件附加或覆盖以前添加的具有相同名称的事件
- 如何在所有ng点击事件AngularJS上启动一个方法
- 是否<asp:文本框>有一个onFocusLost事件
- React应用程序:道具在下一个事件后更新
- 在Angular ui路由器中,如何将事件从一个视图发送到另一个视图
- 如何从另一个处理程序内部取消JavaScript事件处理程序函数的执行
- 算法:从数组(javascript/angular)中按当前日期获取上一个和下一个事件
- 如何向onClick事件处理程序传递一个接受参数的函数,并且仍然将该函数绑定到组件's”;这个“;上下文
- 全局屏幕span onclick触发一个事件javascript
- 事件循环的MEAN.JS setInterval进程(从另一个服务器获取数据)
- 添加一个javascript函数来下载elfinder上的事件
- jQuery触发器事件在一个循环中多次出现
- 'mousemove'画布中的事件侦听器-指针仅在最后一个矩形中更改
- 是否可以同时为一个元素的所有事件指定阻止默认值
- angularjs调用事件中控制器的一个函数