2011-09-01 4 views
2

내가 이벤트를 예약하려면,JS/JQuery와 : 예약 이벤트

방법 JS/JQuery와에 예약 할 수 있습니다 내 사전 정의 된 콜백 화재 및 호출합니다 :

  1. 한 번 이벤트?
  2. 반복 이벤트 (매분 또는 5 분 내 함수를 호출)?

답변

6

일회성 이벤트의 경우 setTimeout을, 반복 이벤트의 경우 setInterval을 원합니다.

둘 다 인수와 함수 및 밀리 초 단위로 지정된 시간 간격을 사용합니다.

var delay_millis = 1500; 

//will alert once, at least half a second after the call to setTimeout 
var onceHandle = window.setTimeout(function() { 
    alert("Time has passed!"); 
}, delay_millis); 

//will alert again and again 
var repeatHandle = window.setInterval(function() { 
    alert("Am I annoying you yet?"); 
}, delay_millis); 

보너스 :이 함수를 호출하여 반환 된 값을 계속 유지하면 필요한 경우 콜백을 취소 할 수 있습니다.

var shutUpShutUp = function() { 
    window.clearInterval(repeatHandle); 
}; 

shutUpShutUp(); //now I can hear myself think. 
0

미리 정의 된 간격으로 이벤트를 예약하는 가장 쉬운 방법은 window.setTimeout입니다.

일회성 이벤트의 경우 한 번 타임 아웃을 설정하고 제한 시간을 비 웁니다.

반복 이벤트의 경우 한 번 타임 아웃을 설정 한 다음 호출 된 메소드에서 시간 초과를 재설정합니다.

1

일회성 이벤트는 setTimeout 호출로 예약됩니다. 되풀이 이벤트를위한 쉬운 방법은 제한 시간을 설정하는 함수에서 setTimeout을 호출하는 것입니다.

2

jQuery는 아무 관련이 없습니다. 당신은 jQuery를 명중 한명()를 사용하여 한 번만 실행됩니다 이벤트에 함수를 바인딩 할 수 setTimeout()

0

setInterval() ...의 문제에 대한

http://api.jquery.com/one/

: 당신은 자바 스크립트 타이머를 필요 이벤트의 타이밍 임계 값은 다음과 같이 이벤트를 선언하십시오.

var clickAvailable = true; 
$('#element').click(function(e) { 
    if(!clickAvailable) { 
     clickAvailable = false; 
     //your code 
     setTimeout(function() { 
      clickAvailable = true; 
     }, 5*60*1000); // 5 minutes... 
    } 
});