JQuery zamanlayıcısını kullanarak js işlevini çağırın


137

JQuery için bir zamanlayıcı uygulamak için yine de var mı, örn. her 10 saniyede bir js işlevini çağırması gerekir.

Aşağıdakileri denedim

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

ama bu sadece bir kez ve sonra bir daha asla gerçekleşmez.

Yanıtlar:


216

Bunu kullanabilirsiniz:

window.setInterval(yourfunction, 10000);

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

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

window.setInterval

Bir işlevi art arda çağırır, o işleve yapılan her çağrı arasında sabit bir gecikme süresi vardır.


45

Bir veya daha fazla zamanlayıcıyı yönetmek için jQuery Zamanlayıcısına göz atmak isteyebilirsiniz .

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

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

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

Sonra ile kontrol edebilirsiniz:

timer.play();
timer.pause();
timer.toggle();
timer.once();
etc...

güzel yarar. Yaşam döngüsünü kontrol etmeyi sağlar.
Jigar Shah

bir zamanlayıcının başka bir zamanlayıcıyı kontrol etmesi gerektiğinde çok kullanışlıdır
Onimusha

1
im bir hata alıyorum :( "TypeError: $ .timer bir işlev değil"
sjd

2
çünkü eklentiyi linkten almanız gerekiyor.
Giszmo


11

jQuery 1.4 ayrıca yalnızca bir kez tetiklemeniz gerekiyorsa ve zaten bu sürümü kullanmaya başladıysanız bir .delay (duration, [queueName]) yöntemi içerir.

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

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

Hata ... benim hatam tetiklemeye devam etmek için bir olay arıyordun. Bunu burada bırakacağım, birisi yardımcı olabilir.



2

Sen kullanabilirsiniz setInterval () Ayrıca size çağırabilirsiniz yöntem setTimeout () örneğin özel işlevinden

function everyTenSec(){
  console.log("done");
  setTimeout(everyTenSec,10000);
}
everyTenSec();

-2
function run() {
    window.setTimeout(
         "run()",
         1000
    );
}

6
-1, çünkü sadece bir işlev sağlamak yerine değerlendirmek için bir dize sağlamak çok fazla hata köküdür.
vog
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.