[英]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);
});
這很簡單。 這是因為每次調用單擊處理程序時, firstRound
為true
。
要修復它,您可能希望將firstRound
作為全局變量,但通常不需要,在這種情況下,您可以使用IIFE使其成為本地變量:
(function() {
var firstRound = true;
$( "#accept" ).click(function() {
// ...
});
}());
你應該聲明firstRound
是全局的。 這將確保僅在第一輪中將其設置為true
。 現在,它正在true
在每次調用onClick
在ID處理#accept
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.