首页 > 解决方案 > 为什么我的 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。

标签: javascripthtmldom

解决方案


推荐阅读