在此代码中:
$('#bomb').animate({
'top': '+=200px'
}, 3000)
.queue(function() {
$('#explosion').fadeIn();
$(this).dequeue();
});
$('#bomb').fadeOut('fast');
如果我将$(this).dequeue()
替换为next()
,它似乎也会做同样的事情。究竟有什么区别?
答案 0 :(得分:1)
在1.4中添加了“next
”到函数的传递,我认为这更像是一种使代码更容易理解的方法。我认为在你提到的情况下你应该使用next
,因为它更具可读性。但是,您必须使用dequeue
。
fx队列是一种特殊情况,因为它会自动dequeue
队列中的第一个元素,如果它是空的并且有些东西排队。通常情况并非如此。
考虑一下:
$("#something").queue("myqueue", function(){/*dostuff*/});
仅此一项将永远不会执行传递的函数。启动队列移动需要调用dequeue
:
$("#something").queue("myqueue", function(){/*dostuff*/}).dequeue("myqueue");