【发布时间】:2021-05-16 11:57:03
【问题描述】:
这些函数在单独工作时可以正常工作,但是当我尝试在它们之间切换时,我在两个数组中都得到了相同的元素。有些是乘以点击次数,有些不是。
var playerBtn1 = [];
var playerBtn2 = [];
var btn = document.getElementsByTagName("button");
playerA();
function playerA() {
for(let i = 0; i <btn.length; i++) {
btn[i].addEventListener("click", () => {
playerBtn1.push(btn[i]);
playerB();
});
}
return playerBtn1;
}
function playerB() {
for(let k = 0; k <btn.length; k++) {
btn[k].addEventListener("click", () => {
playerBtn2.push(btn[k]);
playerA();
});
}
return playerBtn2;
}
编辑。我已经解决了我的问题,我只是摆脱了我的函数和事件监听器之一。把所有东西放在一起就可以了。下面我发布我改进的鳕鱼。
var playerBtn1 = [];
var playerBtn2 = [];
var click = 0;
var btn = document.getElementsByTagName("button");
for(let i = 0; i <btn.length; i++) {
btn[i].addEventListener("click", () => {
if(click % 2 == 0) {
btn[i].innerHTML = '<i class="fas fa-times fa-5x"></i>';
btn[i].disabled = "true";
playerBtn1.push(btn[i].id);
}
else {
btn[i].innerHTML = '<i class="far fa-circle fa-4x"></i>';
btn[i].disabled = "true";
playerBtn2.push(btn[i].id);
}
click++;
});
}
【问题讨论】:
-
btn是页面上的所有按钮。在这两个函数中,您都将事件侦听器添加到页面上的所有按钮。它应该做什么?
标签: javascript arrays function