jQuery:等待/延迟 1 秒而不执行代码

新手上路,请多包涵

我无法在 jQuery 中使用 .delay 方法:

 $.delay(3000); // not working
$(queue).delay(3000); // not working

我正在使用一个 while 循环来等待一个不受控制的变化值大于或等于另一个值并且我找不到任何方法来暂停执行 X 秒。

原文由 Nahydrin 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

$.delay 用于延迟队列中的动画,而不是停止执行。

您需要使用 setTimeout 递归调用每秒执行一次检查的方法,而不是使用 while 循环:

 var check = function(){
    if(condition){
        // run when condition is met
    }
    else {
        setTimeout(check, 1000); // check again in a second
    }
}

check();

原文由 Justin Niessner 发布,翻译遵循 CC BY-SA 3.0 许可协议

您也可以通过这种方式延迟一些操作:

 setTimeout(function (){

  // Something you want delayed.

}, 5000); // How long you want the delay to be, measured in milliseconds.

原文由 Matt Sich 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏