javascript - 为什么我的队列可以正常工作而不会出列?

标签 javascript jquery

我已经阅读了很多次 jquery 文档,但无法理解出队方法。考虑以下示例:

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>

当您运行此脚本时,您会看到 queue 内的函数在 3 秒后触发,但我尚未将其出列。 jQuery 表示 dequeue 将函数从队列中取出,然后执行它。但如果函数可以在不出队的情况下执行,那么出队有什么用呢?

最佳答案

.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>

关于javascript - 为什么我的队列可以正常工作而不会出列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42806065/

相关文章:

javascript - 打字时用另一个文本区域更新一个文本区域

javascript - 如何将Child附加到具有特定高度和宽度的图像数组

javascript - nodeJS require.paths 解决问题

javascript - AJAX 将 NULL 值插入 MYSQL

javascript - 根据最宽图像缩放SVG图像,保持比例

ajax - jQuery AJAX 表单提交错误工作成功不

javascript - flash:ExternalInterface 适用于嵌入标签,但不适用于对象标签

javascript - 为什么这会导致浏览器选项卡崩溃?

Javascript 必须单击表单之外的按钮两次

Javascript 在调用函数后不起作用