javascript - 为什么我的 EventListener 没有产生一次循环迭代?
问题描述
我试图根据应用了 eventListener 的元素一次只访问一个循环的迭代。到目前为止,我只能单击它并遍历整个 NodeList,而不仅仅是其中一个。我想将该操作应用于 NodeList 的所有元素,但一次限制为一个元素。
当我尝试一次将 NodeList 的一个 ID 推送到“手”数组的 console.log 时,它会生成 NodeList 中所有 ID 的整个列表。
function chooseCard () {
let hand = [];
for(const card of cards) {
const addCard = function () {hand.push(card.id)};
card.addEventListener('click', addCard());
let id1 = hand[0];
let id2 = hand[1];
console.log(hand);
if(hand[0] === hand[1]) {
addPoint();
} else {
changePlayer();
if(card.id == id1 || card.id == id2) {
card.firstElementChild.src = `img/cardback.jpeg`;
}
hand = [];
}
}
}
每次点击我只需要查看一个 ID。
解决方案
推荐阅读
- java - 创建一个具有 2 个给定数组的方法,该方法返回一个新数组,其中包含来自 a 和 b 的元素且没有重复项:
- angular - 角度单元测试 - 单击按钮时未检测到更改
- javascript - 如何使用 ionic /Angular 正确处理用于注销和处理多个 url 的 jwt 令牌
- javascript - 如何从 html 中的内联 js 脚本中获取变量并将其放入外部 .js 文件中?
- android - 包含在 Android 中
- javascript - 在 Javascript 中设置元标记是否可以在没有服务器端渲染的情况下工作?
- python - 如何使用python最小化具有周期性边界条件的二维势能函数?
- visual-studio-2019 - 这个项目需要 Spectre-mitigated 库,即使在我在选项中禁用它之后?
- android - 为什么我的图像显示在侧面?
- javascript - Promise 函数中的阻塞操作是否会阻塞 nodejs 中的事件循环?