我的任務是在幻燈片中製作幾張圖片,如果在5秒鐘內沒有點擊前進和後退按鈕(id = right和id = left),它應該自動地向前邁進,我成功了,但我覺得代碼很多。用setInterval()調用EventListener()
var counter = 1;
$('#left').on('click', function peter() {
clearInterval(time);
time = setInterval(function() {
var id = '#' + counter;
$(id).attr('class', 'hidden');
counter++;
if(counter === 4){
counter = 1;
}
id = '#' + counter;
$(id).attr('class', 'visible');
},3000);
var id = '#' + counter;
$(id).attr('class', 'hidden');
counter--;
if (counter === 0) {
counter = 3;
}
id = '#' + counter;
$(id).attr('class', 'visible');
});
$('#right').on('click', function() {
clearInterval(time);
time = setInterval(function() {
var id = '#' + counter;
$(id).attr('class', 'hidden');
counter++;
if(counter === 4){
counter = 1;
}
id = '#' + counter;
$(id).attr('class', 'visible');
},3000);
var id = '#' + counter;
$(id).attr('class', 'hidden');
counter++;
if(counter === 4){
counter = 1;
}
id = '#' + counter;
$(id).attr('class', 'visible');
});
var time = setInterval(function peter() {
var id = '#' + counter;
$(id).attr('class', 'hidden');
counter++;
if(counter === 4){
counter = 1;
}
id = '#' + counter;
$(id).attr('class', 'visible');
},3000);
因此,大家可以看到的問題是,我非常decleared我的setInterval()3次,第一次在我的代碼,然後我在事件監聽器每次declear它重置。我的問題是這樣的:有沒有什麼方法可以刪除一次,然後調用像time(call listnener for id='right')
這樣的事件監聽器,然後在事件列表器中將其重置爲clearInterval(a)
;而不必重新輸入。
一個乾淨的修復方法是通過$('#left,#right')....合併兩個單擊事件處理程序....這將刪除多餘的代碼。 – sudheer