2011-09-01 56 views
2

我要安排事件,這將觸發並調用我的預定義回調JS/jQuery的:調度事件

在JS/jQuery的可以安排:

  1. 一次性事件?
  2. 重複性事件(每分鐘或五分鐘呼叫我的功能)?

回答

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有什麼用它做。您需要JavaScript的定時器:setTimeout()setInterval()

0

可以綁定到將通過使用jQuery的。一()只有一次運行事件的功能...

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... 
    } 
});