我正在使用jQuery構建的ui選項卡上工作。除了一個問題,一切都可以工作 - 我做了一個setInterval,它運行一個觸發器(「單擊」)的函數,以便它在5000毫秒後進入下一個選項卡。它貫穿每個選項卡都很好,問題是如果用戶手動點擊選項卡,則setInterval的定時器不會從0重新開始。例如,如果用戶要在0毫秒的tab1上啓動,並且在2000毫秒,setInterval不會回到0,它將從2000開始並運行到5000毫秒,然後轉到tab3。我明白爲什麼會發生,我只是想知道是否有辦法重新啓動setInterval時間,而不必執行clearInterval()並創建一個全新的setInterval()。任何洞察力將不勝感激。在Javascript/jQuery中重新啓動setInterval()(不帶clearInterval)
更新
感謝您的答覆 - 我試圖避免使用clearInterval是因爲我有一個如何編寫代碼的方式,其中調用clearInterval將完全停止setInterval的問題的原因。代碼設置爲跟蹤用戶何時點擊了一個標籤。問題是自動更改函數使用觸發器('click'),因此它會在選項卡自動更改時運行我寫的clearInterval函數。它似乎自行運行得相當好,但一旦用戶開始點擊標籤,setInterval的表現異常並且不可預測地切換標籤。我懷疑發生了什麼是幾個setIntervals同時運行......這裏的代碼(如果你還沒有猜到它,我很新的JavaScript/jQuery)。我已經評論了部件,以便它可以正常工作,但它仍然不能按我的意圖工作(從第一篇文章開始)。
// auto change tabs
if(options.interval) {
function timerCom() {
if(!$(".controller").hasClass('paused')) {
var i = $(".tab-current > a").attr("rel");
//alert(i);
if(i == 3) {i = 0};
$container
.find('a')
.eq(i)
.trigger('click');
}
}
//$("#promo-items > li > a").click(function() {
//var timer;
//if(timer != null) {clearInterval(timer);}
timer = setInterval(timerCom, options.interval);
//});
}
歡迎來到SO!如果您需要提供更多信息,請修改您的問題。針對有關答案的特定問題使用評論。 SO不是論壇,答案字段嚴格保留給問題的答案。 – 2011-02-23 14:23:14