базовая задержка на функцию jquery .click - PullRequest
11 голосов
/ 31 марта 2010

У меня есть базовая функция jquery из всех, но я не смог найти в документации способ вызвать содержимое этой функции щелчка, скажем, через 1500 миллисекунд:

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

PS только что заметилФункция .delay JQuery 1.4, хотя, я использую версию 1.3.Я не знаю, будет ли обновление этого мешать любому другому javascript, который у меня есть на данный момент.

Ответы [ 2 ]

17 голосов
/ 31 марта 2010

Вы можете сделать это с помощью обычного JavaScript, используя setTimeout().

$('.masonryRecall').click(function(){
        setTimeout("$('#mainContent').masonry()", 1500);
    });
16 голосов
/ 31 марта 2010

Обычно вы должны держаться подальше от строковых литералов в setTimeout / setInterval. Вместо этого используйте закрытие:

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

и даже лучше использовать его следующим образом (примечание: внешнее закрытие на самом деле не нужно):

(function($){
    var timeout=null;
    $('.masonryRecall').click(function(){
        clearTimeout(timeout);
        timeout=setTimeout(function(){$('#mainContent').masonry();}, 1500);
    });
}(jQuery));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...