记忆游戏黑客(不想要)双击同一张卡并进行匹配

如果用户在记忆游戏中点击同一张卡片,我试图不允许调用匹配。虽然它仍然允许


我试过跟踪鼠标并试图不让它点击同一张卡片。


<script>


var OpenCard = [];


if (OpenCard.length == 2){

    const CardType1 = 

    OpenCard[0].querySelector('i').classList.item(1)

    const CardType2 = 

    OpenCard[1].querySelector('i').classList.item(1)

    console.log(CardType1, CardType2);

    movespassed();

    check_stars();


    //compares two cards and checks for a match

    if (CardType1 == CardType2){

        OpenCard.forEach(function(card){ 

            card.classList.add('match')

        });

        OpenCard = []

        game_score++;

        console.log(game_score);




    }

    //if cards don't match close them

    else{

        console.log("i'm here")

        setTimeout(function(){

            OpenCard.forEach(function(card){ 

                card.classList.remove('show', 'open')

            })

            OpenCard = []

        },200);

    }

</script>function(c){

            OpenCard.push(card);

            track.push(card);

            card.classList.add('show', 'open');


至尊宝的传说
浏览 94回答 1
1回答

梦里花落0921

我觉得我需要查看用户单击的实际元素以更好地回答这个问题,但作为一般规则,我喜欢使用添加到元素然后在需要时删除的“标志”类。例如:function cardClick(element){&nbsp; if (!element.classList.contains('clicked')){&nbsp; &nbsp;element.classList.add('clicked');&nbsp; // The rest of your code goes here&nbsp; &nbsp;}}然后当卡片被翻转、删除等时,使用它来删除“点击”类:element.classList.remove('clicked');有了上面的内容,它只允许第一次点击,因为第二次点击会看到“clicked”类在元素上,并且会绕过其余的代码。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript