oBtn1.onclick = function(){ clearInterval(timer); timer = setInterval(cwidth,10); alert(timer); } oBtn2.onclick = function(){ clearInterval(timer); }
setInterval返回值相當於一個Id,每次執行都會產生一個特定的Id,返回值為數字,從一開始逐次累加。
但是在火狐瀏覽器第一次執行時返回值為2.
錯誤方法:
function mySetInterval(f, param, time) { var interval = param._tag; clearInterval(interval); interval = setInterval(function () { f(param); }, time); }
interval 返回值給一個私有變量,私有變量在這個方法結束就沒了,所以 interval 這個定時器取消不掉。
正確方法:
function mySetInterval(f, param, time) { clearInterval(param._interval); var interval = setInterval(function () { f(param); }, time); param._interval = interval; }
