簡體   English   中英

Javascript setInterval 函數提高點擊速度

[英]Javascript setInterval function increases speed onclick

我有一個在點擊時向下計數的腳本,它工作正常,但問題是當多次點擊“運行”按鈕時,計數器的速度會增加。 我已經使用“clearInterval”刪除了最近創建的間隔,但它仍然不起作用。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<button class="run">Run</button>
<p class="show"></p>

腳本

$(".run").on("click", function() {
    var myInterval;
    var decrement=5;
    clearInterval(myInterval) ;
    myInterval=setInterval(function decrementNum() {
        decrement--;
        $(".decrement").text(decrement) ;
        if(decrement==0){
            decrement=5;
        }
        $(".show").text(decrement) ;
    }, 2000)
})

您的intervalId是函數本地的。 每次您添加越來越多的事件偵聽器時。 setInterval 的頻率正在增加,因此它的speed increases將變量移到外面,因此每次click ,訪問的 myInterval 都是相同的。

var myInterval;
$(".run").on("click", function() {
    var decrement=5;
    clearInterval(myInterval) ;
    myInterval=setInterval(function decrementNum() {
        decrement--;
        $(".decrement").text(decrement) ;
        if(decrement==0){
            decrement=5;
        }
        $(".show").text(decrement) ;
    }, 2000)
})

暫無
暫無

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

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