2012-09-11 2 views
1

나는 어떻게이 편집 할 수있는 동작 기능은 할 수 있도록비활성화 JQuery와 기능은

<img src=pic.gif id="action"> 

일부 JQuery와

$("#action").click(function(){ 
    alert("DONE"); 
    }); 

에 부착 된 JQuery와 클릭으로 이미지가 실행 된 후 x 초 동안 실행됩니까? 각 클릭 후 5 초 동안 사용 중지한다고 가정 해 보겠습니다.

답변

2

예. 그 이벤트를 바인딩 해제하고 다시 첨부하십시오. 이는`, 그것은 시도 .. 경과 기간 이후에만이

var click = function() { 
    $("#action").click(function() { 
     alert("DONE"); 
     // Unbind the event 
     $('#action').unbind(); 
     // Call the function after 2 second delay 
     setTimeout(function() { 
      click(); 
     }, 2000); 
    }); 
    }; 
click(); 
​ 

확인 당신이 폐쇄에`setTimeout` 기능을 포장 할 필요가 없습니다이 DEMO

+1

를 실행합니다 확인합니다 setTimeout (클릭, 2000);'할 것이다. – Kyle

+0

나중에 사실 .. 놓친 .. 지적 해 주셔서 감사합니다. –

+0

다른 요소에이 기능을 원하지 않으실 겁니다. 이 함수는'# action'과 밀접하게 결합되어 있지만 좋은 대답은 아닙니다. – Kyle

0

이것은 단지 예일 뿐이므로 click 핸들러를 모두 바인딩 해제하지 않으려면 Namespaced Events을 조사해야 할 수 있습니다.

var action_click = function(){ 
    var $self = $(this); 

    alert("done"); // do your thing 

    $self.unbind('click'); // unbind the click handler 

    // rebind the handler after 5 second delay 
    setTimeout(function(){ 
    $self.click(action_click); 
    }, 5000); 

}; 

// setup initial click handler 
$('#action').click(action_click); 

당신은 변수에 함수를 저장할 수 Fiddle