setTimeout()不工作,因为它应该是
问题描述:
当滚动事件发生时,我需要能够等待一定的时间。setTimeout()不工作,因为它应该是
代码:
$(window).scroll(function()
{
if($(window).scrollTop() + $(window).height() == $(document).height())
{
setTimeout(function(){}, 1000); //I need to be able to wait 1 second and then continue with execution...
$(".loader").show().delay(700).fadeOut();
$.ajax({ ///more code });
}
});
任何想法可能是错误的?
为什么setTimeout()
在这个特定的例子中不起作用?
答
setTimeout()
是非阻塞的。将稍后应该发生的代码移到该空函数中。
setTimeout(function(){
$(".loader").show().delay(700).fadeOut();
$.ajax({ /* more code */ });
}, 1000);
+0
啊我愚蠢的:)这是正确的在我面前:)谢谢你,虽然 – 2013-05-09 20:49:14
答
要耽误什么应该放在里面的setTimeout这样的 -
setTimeout(function(){
$(".loader").show().delay(700).fadeOut();
$.ajax({ ///more code });
}, 1000);
答
把你的代码需要在设定的时间进行功能与等待。
$(window).scroll(function()
{
if(your condition)
{
setTimeout(function(){
$(".loader").show().delay(700).fadeOut();
$.ajax({ ///more code });
}, 1000);
}
});
它的工作原理与其应该完全相同。如果您希望延迟执行,您的代码编码不正确。考虑你正在传递一个函数。当然,这肯定有一些原因。 – 2013-05-09 20:48:21
是的,你是对的...我没有意识到这一点,这是在我面前:) – 2013-05-09 20:50:19