我无法在jQuery中使用.delay
方法:
$.delay(3000); // not working
$(queue).delay(3000); // not working
我使用一个while循环来等待,直到一个不受控制的变化值大于或等于另一个值,并且我找不到任何方法在X秒内停止执行。
发布于 2012-01-17 22:32:02
$.delay用于延迟队列中的动画,而不是停止执行。
您需要使用setTimeout
递归调用每秒执行检查的方法,而不是使用while循环
var check = function(){
if(condition){
// run when condition is met
}
else {
setTimeout(check, 1000); // check again in a second
}
}
check();
发布于 2012-07-21 09:31:01
你也可以这样延迟一些操作:
setTimeout(function (){
// Something you want delayed.
}, 5000); // How long do you want the delay to be (in milliseconds)?
发布于 2012-01-17 22:43:04
jQuery的delay
函数旨在与效果和效果队列一起使用,请参阅delay
docs和其中的示例:
$('#foo').slideUp(300).delay(800).fadeIn(400);
如果你想观察一个变量的变化,你可以这样做
(function() {
var observerInterval = setInterval(function() {
if (/* check for changes here */) {
clearInterval(observerInterval);
// do something here
}
}, 1000);
})();
https://stackoverflow.com/questions/8896327
复制相似问题