更新了最新的代碼:setInterval的復位按鈕上單擊
下面是最新的代碼,仍然有2個按鍵和2種功能。每個按鈕應運行釋放函數,並設置代碼在每分鐘後通過setInterval運行相同的按鈕。出於某種原因,第一個setInterval總是似乎保持設置,即使點擊第二個按鈕後應該改變它。不知道我做錯了:
$(document).ready(function() {
var myTimer = null;
get_popular();
clearInterval(myTimer);
myTimer = null;
myTimer = setInterval(function() {$('a.btnPopular').click();}, 60*1000);
$('a.btnPopular').click(function(event) {
event.preventDefault();
get_popular($(this));
clearInterval(myTimer);
myTimer = null;
myTimer = setInterval(function() {$('a.btnPopular').click();}, 60*1000);
});
function get_popular(that) {
$.ajax({
url: 'get_popular.aspx?rand=' + Math.random(),
type: 'GET',
error: function(xhr, status, error) {
// error message here
},
success: function(results) {
if (typeof that != "undefined") {
that.closest('.outer_div').find('.inner_div').empty().append(results);
} else {
$('.inner_div.new').empty().append(results).removeClass('new');
}
}
});
}
$('a.btnLatest').click(function(event) {
event.preventDefault();
get_latest($(this));
clearInterval(myTimer);
myTimer = null;
myTimer = setInterval(function() {$('a.btnLatest').click();}, 60*1000);
});
function get_latest(that) {
$.ajax({
url: 'get_latest.aspx?rand=' + Math.random(),
type: 'GET',
error: function(xhr, status, error) {
// error message here
},
success: function(results) {
if (typeof that != "undefined") {
that.closest('.outer_div').find('.inner_div').empty().append(results);
} else {
$('.inner_div.new').empty().append(results).removeClass('new');
}
}
});
}
});
或者:'的setInterval( 「$( 's.btnPopular')點擊()」,60 * 1000)' –
@MihaRekar,我只是嘗試這樣做,這是一個進步。但是如果我點擊第二個按鈕,會發生正確的事情,但定時器繼續執行第一個按鈕的點擊事件。爲什麼定時器不能切換? – oshirowanen
這是因爲第一個時間間隔仍在運行,您必須清除它。閱讀:http://stackoverflow.com/questions/6590671/how-to-do-a-clear-interval-in-javascript –