2010-08-17 5 views
0

다시. 나는이 스 니펫에 대한 도움을 얻었습니다. 그래서 이제 마지막 단계를 밟았습니다. 이 코드는 클릭 한 후 5 초 동안 클릭 한 항목에 확인 표시를 추가합니다. 문제는 다음과 같습니다. 세 개의 항목이 빠르게 연속적으로 클릭되는 경우 클릭 한 마지막 항목이 아닌 항목의 시간 제한을 취소해야합니다. 체크 박스는 항목을 클릭 한 다음 5 초가 경과 할 때만 나타나야합니다. 코드는 다음과 같습니다.clearTimeout을 사용하여 페이지 작업을 수행하는 방법

}); 당신이 그것을 할 때마다 설정하기 전에

답변

1
clearTimeout(thetimeout); 

www.jontakiff.com/checks가 있음을 넣어 :

여기 데모입니다.

+0

. 데모 용 스크립트에 추가했습니다. – Johnny

+0

오 기다려 ... 내가 무슨 말하는지 알 것 같아 ... – Johnny

+0

죄송합니다, 클릭 기능에서 ... – Ryley

2

다음 이벤트 (즉, 이벤트 핸들러 외부의 범위에서 변수가 생존 할 수 있도록 클로저가 만들어지기 전까지)가 끝날 때까지 타임 아웃 핸들을 더 넓은 범위에 저장해야합니다. 핸들이 설정되어있는 경우

그럼 그냥 clearTimeout 방법을 사용할 수 있습니다 :

내가 너무 생각하지만, 그것은 작동하지 않습니다 무엇
$(function() { 

    var thetimeout = null; 

    $('li a').click(function() { 
    $('li').not('this').css('background-position','left bottom'); 
    $(this).parent().css('background-position','left top'); 
    if (thetimeout != null) window.clearTimeout(thetimeout); 
    thetimeout = window.setTimeout($.proxy(function() { 
     $(this).parent().css('background-image','url(images/check.png)'); 
    }, this) 
    ,5000); 

}); 
관련 문제