我多次阅读jquery文档,但未能理解dequeue方法。请考虑以下示例:
var div = $(".div");
div.animate({
height: "200px"
}, 3000).queue(function(){
console.log("3 seconds passed and I show off without dequeue");
});

div {
width: 300px;
height: 100px;
background-color: red;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="div"></div>
&#13;
当您运行此脚本时,您会发现queue
内的功能在3秒后触发但我没有dequeued
。 jQuery说dequeue将该函数从队列中取出然后执行它。但是如果函数可以在没有出列的情况下执行,那么使用出队的是什么?
答案 0 :(得分:1)
.dequeue()
来保持队列正在执行,如果你有两个动画,如果你不使用它就不会调用第二个。根据你的代码检查下一个例子:第一个div有.dequeue注释,所以只执行一个动画。
var divClass = $(".div");
divClass.animate({
height: "50px"
}, 500).queue(function(){
//$(this).dequeue();
}).animate({height: "100px"},500);
var div = $("div");
div.animate({
height: "50px"
}, 500).queue(function(){
$(this).dequeue();
}).animate({height: "100px"},500);
div {
width: 300px;
height: 100px;
background-color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="div">First DIV</div>
<span>HELLO</span>
<div>Second DIV</div>