Викличте js-функцію за допомогою таймера JQuery


137

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

Я спробував наступне

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

але це виконується лише раз і потім ніколи більше.

Відповіді:



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...

приємна утиліта. Дозволяє контролювати життєвий цикл.
Джигар Шах

дуже корисно, коли одному таймеру потрібно керувати іншим таймером
Онімуша

1
я отримую помилку :( "TypeError: $ .timer не є функцією"
sjd

2
це тому, що вам потрібно отримати плагін за посиланням.
Giszmo

25

setInterval - потрібна функція. Це повторюється кожні х мілісекунд.

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

11

jQuery 1.4 також включає метод .delay (тривалість, [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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.