2010-03-30 94 views
11

我有他们所有的最基本的jQuery的功能,但我无法找到文件的方式来触发此点击功能的内容说,1500毫秒后:基本延迟

$('.masonryRecall').click(function(){ 
    $('#mainContent').masonry(); 
}); 

PS刚刚注意到了.delay函数jquery 1.4,尽管我使用的是1.3版本。我不知道更新是否会干扰我目前拥有的任何其他JavaScript。

回答

17

您可以使用常规javascript使用setTimeout()来完成此操作。

$('.masonryRecall').click(function(){ 
     setTimeout("$('#mainContent').masonry()", 1500); 
    }); 
+0

@Bryon惠特洛克感谢您的。只需添加其.masonry()。但是,暂停似乎没有工作。它仍然立即启动? – kalpaitch 2010-03-30 23:06:11

+0

再次感谢您的指导。 setTimeout(“$('#mainContent')。masonry()”,1500); – kalpaitch 2010-03-30 23:12:35

+0

好的。我更新了答案。 – 2010-03-30 23:14:25

16

您通常应该远离setTimeout/setInterval中的字符串文字。相反,使用闭包:

setTimeout(function(){ $('#mainContent').masonry(); }, 1500);` 

,更是这样使用它(注:外部封闭是不是真的有必要):

(function($){ 
    var timeout=null; 
    $('.masonryRecall').click(function(){ 
     clearTimeout(timeout); 
     timeout=setTimeout(function(){$('#mainContent').masonry();}, 1500); 
    }); 
}(jQuery));