作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我希望三个事件一个接一个地运行,所以第一行完成,然后第二行在第三行开始后开始...所以下一个元素(效果)应该等到上一个效果完成为止?
谢谢
原始代码:
$('.login_menu_arrow.top').click(function(event)
{
$("#login_menu").slideUp();
$('.login_menu_arrow.top').hide();
$('.login_menu_arrow.bottom').show();
event.stopPropagation();
});
我的测试不起作用:
来源:A way to chain a sequence of events in JQuery?
1:
$('.login_menu_arrow.top').click(function(event)
{
$("#login_menu").slideUp(function() {
$('.login_menu_arrow.top').hide(function() {
$('.login_menu_arrow.bottom').show();
});
});
});
来源:How do you get JQuery to wait until an effect is finished?
2:
$('.login_menu_arrow.top').click(function(event)
{
$(this).queue(function() {
$("#login_menu").slideUp();
$(this).dequeue();
}).queue(function() {
$('.login_menu_arrow.top').hide();
$(this).dequeue();
}).queue(function() {
$('.login_menu_arrow.bottom').show();
$(this).dequeue();
});
});
最佳答案
你与#1很接近,但是hide
不是动画效果unless you call it with a duration ,所以你不使用回调:
$('.login_menu_arrow.top').click(function(event)
{
$("#login_menu").slideUp(function() {
$('.login_menu_arrow.top').hide();
$('.login_menu_arrow.bottom').show();
});
});
请注意,这是有效的,因为您正在为单个元素设置动画 (#login_menu
)。如果您要对多个元素进行动画处理,则会多次调用回调(每个元素完成时调用一次)。如果您要对多个元素进行动画处理并希望在所有元素完成后进行一次回调,则可以在启动动画后使用 promise
as shown in this example 。但您不需要这样做,因为您正在为单个元素设置动画。
关于Jquery 效果等待前一个完成后再运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20540499/
我有本地更改和远程更改。 有人告诉我必须先推,再 pull 。这背后有什么原因吗? 最佳答案 那个人错了:正确的模型是pull-before-you-push,而不是相反。 当您pull时,git 将
我正在使用最新版本的 Flat UI Pro 1.3.2 ( http://designmodo.com/flat/ ),jQuery 插件 flatui-radiocheck v0.1.0 和 iO
我是一名优秀的程序员,十分优秀!