javascript - jQuery 的 .delay 方法是如何工作的?

标签 javascript jquery

我刚刚看到这个,觉得它很酷。

console.log("Starting...");
$("#my_element")
  .fadeIn()
  .delay(3000)
  .fadeOut();
console.log("Finishing...");

.delay 方法是如何工作的?我的意思是,它如何知道如何等待 3 秒但不中断主控制流?

最佳答案

jQuery 有一个内部“队列”对象,它只是一个数组:

[ nextAction,
  action,
  action,
  lastAction ]

当您使用delay 时,它会推送:

function delay( ms ){
   setTimeout( dequeue, ms )
}

这意味着一旦达到延迟,就会超时,然后会触发下一个 Action 。但是,立即发生的操作,例如 .css,会:

function css(){
    // do stuff
    dequeue();
}

没有延迟。

关于javascript - jQuery 的 .delay 方法是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6617240/

相关文章:

jquery - 自定义 jQuery UI 1.8 中的自动完成显示

javascript - React element - 数组对象仅返回第一项?

javascript - <a> 标签内的 <a> 标签?

javascript - 如何使这个 div 相对于主容器的位置

javascript - Object.keys 方法如何对字符串键 id 进行排序

javascript - Bootstrap 4 提前输入

javascript - 在 fullpage.js 中反转图像回调的颜色

jquery - iCheck 库 : CSS styling issue

javascript - 用主干覆盖同步值的简单方法

javascript - jquery 使用 .css() 操作标签