Вызов js-функции с помощью таймера JQuery

137

Есть ли способ реализовать таймер для JQuery, например. каждые 10 секунд необходимо вызывать js-функцию.

Я пробовал следующее

window.setTimeout(function() {
 alert('test');
}, 10000);

но это выполняется только один раз и никогда больше.

Элитмиар
источник

Ответы:

216

Вы можете использовать это:

window.setInterval(yourfunction, 10000);

function yourfunction() { alert('test'); }
Кристоф Клаас
источник
50
window.setInterval(function() {
 alert('test');
}, 10000);

window.setInterval

Вызывает функцию несколько раз с фиксированной задержкой по времени между каждым вызовом этой функции.

рахул
источник
45

Вы можете попробовать jQuery Timer для управления одним или несколькими таймерами.

http://code.google.com/p/jquery-timer/

var timer = $.timer(yourfunction, 10000);

function yourfunction() { alert('test'); }

Тогда вы можете контролировать это с помощью:

timer.play();
timer.pause();
timer.toggle();
timer.once();
etc...
Jchavannes
источник
хорошая утилита. Позволяет контролировать жизненный цикл.
Jigar Shah
очень полезно, когда один таймер должен управлять другим таймером
Onimusha
1
я получаю сообщение об ошибке :( "TypeError: $ .timer не является функцией"
sjd
2
это потому, что вам нужно получить плагин по ссылке.
Giszmo
25

setInterval - это нужная вам функция. Это повторяется каждые x миллисекунд.

window.setInterval(function() {
    alert('test');
}, 10000);
Икке
источник
11

jQuery 1.4 также включает метод .delay (duration, [queueName]), если вам нужно, чтобы он сработал только один раз и вы уже начали использовать эту версию.

$('#foo').slideUp(300).delay(800).fadeIn(400);

http://api.jquery.com/delay/

Упс .... моя ошибка, вы искали событие, которое будет запускаться. Я оставлю это здесь, кому-то это может пригодиться.

Крейг
источник
2

Вы можете использовать метод setInterval (), также вы можете вызвать setTimeout () из своей пользовательской функции, например

function everyTenSec(){
  console.log("done");
  setTimeout(everyTenSec,10000);
}
everyTenSec();
Арен Овсепян
источник
-2
function run() {
    window.setTimeout(
         "run()",
         1000
    );
}
гарпакс
источник
6
-1, потому что предоставление строки для eval вместо простого предоставления функции является корнем слишком большого количества ошибок.
vog