簡體   English   中英

提交之間不能清空數組

[英]Can't empty array between submits

我很久以來一直在努力解決這個問題。 我有一個數組,我將按下按鈕點擊數字,如[2,6,8]。 我嘗試用另一個按鈕單擊在提交之間清空數組但是我沒有成功。 有人可以指出我的錯誤嗎? 即使我嘗試格式化並在此之后多次更改它,該陣列仍會保持打印第一個結果。 數據索引也在DOM中正確更改。 我也嘗試在#accept點擊開始時清空數組,但沒有效果。

var mediaArray = [];

$( "#clearAll" ).click(function() {
        mediaArray = [];
        console.log("i can see this");
});

$( "#accept" ).click(function() {
        var firstRound = true;
        var mediaLength = 0;
        var eachData = 0;
        $( ".slots" ).each(function(index) {
            if (!firstRound) {
                mediaLength++;
                if ($(this).data('index') != eachData) {
                    mediaArray.push(mediaLength);
                    mediaLength = 0;
                }
            }
            eachData = $(this).data('index');
            firstRound = false;
            console.log($(this).data('index'));
        });
        mediaArray.push(mediaLength+1);

        console.log(mediaArray);
});

這很簡單。 這是因為每次調用單擊處理程序時, firstRoundtrue

要修復它,您可能希望將firstRound作為全局變量,但通常不需要,在這種情況下,您可以使用IIFE使其成為本地變量:

(function() {

    var firstRound = true;

    $( "#accept" ).click(function() {
        // ...
    });

}());

你應該聲明firstRound是全局的。 這將確保僅在第一輪中將其設置為true 現在,它正在true在每次調用onClick在ID處理#accept

暫無
暫無

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

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