js定時器關閉,js定時器停止,一次關閉所有正在運行的定時器,自定義函數clearIntervals()一次關閉所有正在運行的定時器


js定時器關閉,一次關閉所有正在運行的定時器,自定義函數clearIntervals()一次關閉所有正在運行的定時器,原理:利用數組存儲定時器id,然后遍歷數組,關閉定時器
附上頁面的截圖,代碼在截圖下,想看效果就自己復制下邊的代碼,保存個頁面看吧:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>clearIntervals()一次關閉所有定時器</title>
</head>
<body>
<div>下面有三個定時器  以不一樣的時間間隔輸出不同內容</div><br><br>
<input type='button' value='輸出“liu” 初始一秒4次' >
<input type="button" value="輸出“jin” 初始一秒2次">
<input type="button" value="輸出“yu” 初始一秒1次">
<button id='clear' style='margin-left:50px;'>清除所有定時器</button>
<div id="div1"></div>
 
<script type="text/javascript">

    var oDiv = document.getElementById('div1');
    var aInput = document.getElementsByTagName('input');
    var oBtn = document.getElementById('clear');
    var arr = [];
    var txt = '';
    //每次生成的定時器都單獨有一個數組里的位置,避免了沖突
    aInput[0].onclick=function(){
        arr.push(setInterval(liu, 250));
    }
    aInput[1].onclick=function(){
        arr.push(setInterval(jin, 500));
    }
    aInput[2].onclick=function(){
        arr.push(setInterval(yu, 1000));
    }
    //調用自定義函數 用一個for循環 關閉數組中存儲的所有定時器;
    oBtn.onclick=function(){
        clearIntervals(arr);
    }

    function liu(){
        txt = txt.concat(' Liu')
        oDiv.innerHTML=txt;
        return txt;
    }
    function jin(){
        txt = txt.concat(' Jin')
        oDiv.innerHTML=txt;
        return txt;
    }
    function yu(){
        txt = txt.concat(' Yu')
        oDiv.innerHTML=txt;
        return txt;
    }
    //原理 用一個數組來保存所有定時器的id
    function clearIntervals(array){
        for (var i = array.length - 1; i >= 0; i--) {
            // if (typeof array[i] !== 'undefined') {
                clearInterval(array[i]);
            // };
        };
    }

</script>
</body>
</html>


免責聲明!

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



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