2010-03-30 5 views
11

나는 그들 모두의 가장 기본적인 JQuery와 기능을 가지고 있지만, 1500 밀리 초 내린 후, 나는이 클릭 기능의 내용을 트리거 할 수있는 문서의 방법을 찾을 수 없습니다 :기본 지연

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

PS .delay 함수 jquery 1.4가 주목되었지만 버전 1.3을 사용하고 있습니다. 이 업데이 트가 내가 현재 가지고있는 다른 자바 스크립트 중 하나를 방해할지 여부를 모르겠다.

답변

17

setTimeout()을 사용하여 일반 자바 스크립트로 처리 할 수 ​​있습니다.

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

@Bryon 틀록 감사합니다. .masonry()를 추가하기 만하면됩니다. 하지만 타임 아웃이 작동하지 않는 것 같습니다. 여전히 즉시 발사된다 ??? – kalpaitch

+0

다시 한번 감사드립니다. 그냥 작은 또 다른 변경 및 완벽하게 작동합니다 : setTimeout ("$ ('mainContent'). masonry()", 1500); – kalpaitch

+0

좋은 캐치. 나는 대답을 업데이트했다. –

16

일반적으로 setTimeout/setInterval에서 문자열 리터럴을 피해야합니다. 대신 폐쇄를 사용

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

과 더 나은은 다음과 같이 사용 (참고 : 외부 폐쇄가 정말 필요하지 않습니다) : 그것에 대해

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