jQuery 的 sleep 函数是什么?

14

可能是重复问题:
Jquery:如何延迟或休眠?

var main = $('#main_content');
main.append("<img id=\"throbber\" src='/pre_config/css/images/throbber.gif' alt='Loading. Please wait.' />");
sleep(3000);
$("#main_content").load("/pre_config/function.php?type="+type+"piz&count=1", successCallback );

我想在这里睡眠3秒钟

sleep is not defined
[Break on this error] sleep(3000);
func2

这篇stackoverflow帖子是你要找的吗? - Chris Thompson
1
这个问题似乎是一个重复的问题,但是重复的那个并不能帮助到提问者。我认为提问者没有意识到在JavaScript中阻塞方法是行不通的,并且会寻找替代范例。 - Daniel Vassallo
1
并不是完全重复。上下文和答案都不同。 - Brent Bradburn
2个回答

21

使用JavaScript的setTimeout()函数。

setTimeout(function() {
    $("#main_content").load("/pre_config/function.php?type="+type+"piz&count=1", successCallback );
}, 3000);

编辑:

如果要使用.delay()方法,你需要将延迟的代码添加到动画队列中。

$("#main_content")
.delay(3000)
.queue(function( n ) {
    $(this).load("/pre_config/function.php?type="+type+"piz&count=1", successCallback )
           .dequeue();
});

+1...我在我的回答中引用了你的例子 :) 这些应该对OP有所帮助。 - Daniel Vassallo

11

请记住,JavaScript 不仅是单线程的,而且它与页面渲染共用同一线程。因此 JavaScript 中没有内置的阻塞函数,因为这会导致页面用户界面无法响应。

相反,您应该考虑使用定时器,例如 setTimeout(), setInterval() 或 jQuery 的 delay()函数。可以查看@Patrick的回答了解几个示例。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接