要解決當前的問題:加入clearInterval(window.t)
在復位按鈕onclick
功能。
一種方法能夠有多個定時器。不過,這需要一定的結構。
小提琴(6定時器!):http://jsfiddle.net/dztGA/27/
(function(){ //Anonymous function, to not leak variables to the global scope
var defaultSpeed = 3000; //Used when missing
var timerSpeed = [500, 1000, 2000, 4000, 8000];
var intervals = [];
function increase(i){
return function(){
var elem = $("#count"+i);
elem.text(parseFloat(elem.text()) + 1);
}
}
function clear(i){
return function(){
clearInterval(intervals[i]);
}
}
function restart(i){ //Start AND restart
return function(){
clear(i)();
increase(i)();
intervals[i] = setInterval(increase(i), timerSpeed[i]||defaultSpeed);
}
}
// Manual increment
$('input[name=increment]').each(function(i){
$(this).click(function(){
restart(i)();
increase(i)();
});
});
// Clear timer on "Clear"
$('input[name=clear]').each(function(i) {
$(this).click(clear(i));
});
// Restart timer on "Restart"
$('input[name=reset]').each(function(i) {
$(this).click(restart(i));
//Optionally, activate each timer:
increase(i)();
});
})();
不能欺騙;在Ubuntu下的Chrome 14 - 工作正常。雖然提到'window.t'和't'取決於你在哪裏給我heebie-jeebies。 –
謝謝@DaveNewton,我想調用window.method(t)推斷清除對象「window」的參數「t」!非常感謝您的洞察力。 –
如果我反覆點擊「重啓計時器」,不點擊其他任何東西,計時器將失控。 – Blazemonger