JS / JQuery: планирование событий - PullRequest
2 голосов
/ 02 сентября 2011

Я хочу запланировать события, которые будут запускать и вызывать мой предопределенный обратный вызов

Как можно запланировать в js / jquery:

  1. одноразовое событие?
  2. повторяющееся событие (вызывать мою функцию каждую минуту или пять минут)?

Ответы [ 5 ]

6 голосов
/ 02 сентября 2011

Вы хотите 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.
2 голосов
/ 02 сентября 2011

jQuery не имеет к этому никакого отношения. Вам нужны таймеры JavaScript: setTimeout() и setInterval()

1 голос
/ 02 сентября 2011

Одноразовое событие только что запланировано с вызовом setTimeout. Простой способ для повторяющегося события - просто вызвать setTimeout в функции, для которой вы устанавливаете время ожидания.

0 голосов
/ 02 сентября 2011

Вы можете привязать функцию к событию, которое будет запускаться только один раз, используя .one () в 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...
    }
});
0 голосов
/ 02 сентября 2011

Самый простой способ запланировать события (с заданными интервалами) - window.setTimeout.

Для одноразового события вы устанавливаете тайм-аут один раз и позволяете тайм-ауту срабатывать.

Для повторяющихся событий вы устанавливаете время ожидания один раз, а затем сбрасываете время ожидания в вызываемом методе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...