關於setInterval返回值問題


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;
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM