为什么console.dir行永远不会运行?我可以嵌套队列吗?
//Rotate letter W to M of Wovi.es
$(".logo a span").delay(5000).queue(function(){
$(this).addClass("rotate").delay(400).queue(function(){
//$(this).removeClass("rotate");
console.dir($(this)); // This never runs
});
});
明显的解决方法我可以看到只有两个单独的函数,如:
//Rotate letter W to M of Wovi.es
$(".logo a span").delay(5000).queue(function(){
$(this).addClass("rotate");
});
$(".logo a span").delay(5400).queue(function(){
$(this).removeClass("rotate");
});
但为什么不先工作?
P.S。实际上我的第二个代码也不起作用。
答案 0 :(得分:0)
$("#test").delay(5000).queue(function(){
var $this = $(this);
$(this).addClass("rotate").delay(1400).queue(function(){
$this.removeClass('rotate');
}).dequeue();
});
注意我在内部延迟时将其更改为1400,因此更明显。
答案 1 :(得分:0)
dequeue
是关键。
来自jQuery docs:
当调用jQuery.dequeue()时,队列中的下一个函数将从队列中删除,然后执行。该函数应该(直接或间接)导致调用jQuery.dequeue(),以便序列可以继续。
$('.logo').delay(500).queue(function(){
$(this).addClass('rotate').delay(1000)
.queue(function(next) {
alert('working');
}).dequeue();
});