我刚刚看到这个,觉得它很酷。
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/