Delay() 和 fadeOut() 不会延迟队列中的 attr()
这段代码有什么问题?我试图获得这种效果: fadeOut(500)
和 attr('class','myClass')
延迟 600 毫秒..然后 delay( 600)
,然后fadeIn(500)
。延迟正确发生,但 attr()
没有被延迟,它在 #myDiv
仍在消失时触发! :'(
$('#myDiv').fadeOut(500)
.delay(600)
.attr('class','myClass')
.delay(600)
.fadeIn(500);
what is wrong in this code? I'm trying to get this effect: fadeOut(500)
and attr('class','myClass')
delayed by 600 millisecs.. then delay(600)
again, and fadeIn(500)
. The delays happen correctly but the attr()
is not being delayed, it fires when #myDiv
is still fading! :'(
$('#myDiv').fadeOut(500)
.delay(600)
.attr('class','myClass')
.delay(600)
.fadeIn(500);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
.delay()
仅影响动画或fx< /code> 队列(除非您专门指定不同的队列)。请记住,链接和队列是两个截然不同的概念,链接继续使用相同的 jquery 集,但这与该集中元素上的任何事件队列完全不同。
要使
.attr()
调用受影响,您必须添加它使用.queue()
作为对同一队列的回调,如下所示:还要注意有
.addClass()
、.removeClass()
和.toggleClass()
方法可用,这可能会让这更干净:)The
.delay()
only affects the animation orfx
queue (unless you specify a different queue specifically). Keep in mind that chaining and queuing are 2 distinctly different concepts, chaining continues the use of the same jquery set, but that's a different thing entirely than any event queues on elements in that set.To have the
.attr()
call affected, you have to add it as a callback to that same queue using.queue()
, like this:Also note there are
.addClass()
,.removeClass()
and.toggleClass()
methods available that may make this a bit cleaner :)我们对这段代码的问题是,当您尝试执行我的不同 jquery 效果时,您必然没有使用队列函数。
例如,我们可以这样做:
但如果您有更多,则应该按某种顺序排列。
我的建议是:
在这里您还可以了解如何更改类别。我希望它能帮助你
Our problem with this code is that You didn't use queue function with is neceserly when You try execute my different jquery effects.
For example we can make this :
but if You have more it should be in some order.
My propositions is :
Here You have additionally how class is changed. I hope it will help You