js / jquery:调度事件

时间:2011-09-01 20:07:24

标签: javascript events

我想安排事件,这将触发并调用我预定义的回调

如何在js / jquery中安排:

  1. 一次性活动?
  2. 重复发生的事件(每分钟或五分钟呼叫我的功能)?

5 个答案:

答案 0 :(得分: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.

答案 1 :(得分:2)

jQuery与它无关。您需要JavaScript定时器:setTimeout()setInterval()

答案 2 :(得分:1)

仅使用setTimeout调用安排一次性事件。重复事件的一种简单方法是在您设置超时的函数中调用setTimeout。

答案 3 :(得分:0)

安排事件(按预定义的时间间隔)的最简单方法是window.setTimeout

对于一次性事件,您设置一次超时并让超时触发。

对于重复发生的事件,您可以设置一次超时,然后在被调用的方法中重置超时。

答案 4 :(得分:0)

您可以通过在jQuery中使用.one()将函数绑定到只运行一次的事件...

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