เรียกใช้ js-function โดยใช้ตัวจับเวลา 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...

ยูทิลิตี้ที่ดี ช่วยให้การควบคุมวงจรชีวิต
Jigar Shah

มีประโยชน์มากเมื่อเวลาหนึ่งต้องควบคุมตัวจับเวลาอื่น
Onimusha

1
ฉันได้รับข้อผิดพลาด :( "TypeError: $ .timer ไม่ใช่ฟังก์ชั่น"
sjd

2
นั่นเป็นเพราะคุณต้องได้รับปลั๊กอินจากลิงค์
Giszmo

25

setIntervalเป็นฟังก์ชั่นที่คุณต้องการ นั่นจะทำซ้ำทุก ๆ สิบล้านวินาที

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

11

jQuery 1.4 ยังมีเมธอด. delay (ระยะเวลา, [queName]) หากคุณต้องการให้ทริกเกอร์เพียงครั้งเดียวและเริ่มใช้เวอร์ชันนั้นแล้ว

$('#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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.