簡體   English   中英

clearInterval 不清除函數內部的 setInterval

[英]clearInterval does not clear setInterval inside function

如何清除 StartGame 函數內 setInterval 的間隔?(目前一個不起作用)

 document.getElementById("rndletter").addEventListener("click", function StartGame() ** { setInterval(function() ** { var result0 = String.fromCharCode(Math.floor(Math.random() * (122 - 97)) + 97); var result1 = String.fromCharCode(Math.floor(Math.random() * (122 - 97)) + 97); var result2 = String.fromCharCode(Math.floor(Math.random() * (122 - 97)) + 97); }, 2000); }); document.getElementById("stprndletter").addEventListener("click", function() { clearInterval(); });
 <button id="rndletter">Start game</button> <button id="stprndletter">Stop game</button> <td style="text-align: center; color: blue; font-size: 150%;"> <b> <div id="result0"><br /> </div> </b></td> <td style="text-align: center; color: brown; font-size: 150%;"> <b> <div id="result1"><br /></div> </b></td> <td style="text-align: center; color: hotpink; font-size: 150%;"><b> <div id="result2"><br /></div> </b></td>

我在閱讀文檔后得到了答案,對於任何搜索相同的人,我已經這樣做了:(添加了 ID nIntervID

let nIntervId;

document.getElementById("rndletter").addEventListener("click", function {
    nIntervId = setInterval(function() {
        var result0 = String.fromCharCode(Math.floor(Math.random() * (122 - 97)) + 97);
        var result1 = String.fromCharCode(Math.floor(Math.random() * (122 - 97)) + 97);     
        var result2 = String.fromCharCode(Math.floor(Math.random() * (122 - 97)) + 97);

        document.getElementById("result0").innerText = result0;
        document.getElementById("result1").innerText = result1;
        document.getElementById("result2").innerText = result2;
    },2000);});
    document.getElementById("stprndletter").addEventListener("click", function() {
        clearInterval(nIntervId);
        // release our intervalID from the variable
        nIntervId = null; 
    });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM