为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

至尊宝的传说 2021-06-10 17:41:02
如果用户在记忆游戏中点击同一张卡片,我试图不允许调用匹配。虽然它仍然允许我试过跟踪鼠标并试图不让它点击同一张卡片。<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');
查看完整描述

1 回答

?
梦里花落0921

TA贡献1772条经验 获得超6个赞

我觉得我需要查看用户单击的实际元素以更好地回答这个问题,但作为一般规则,我喜欢使用添加到元素然后在需要时删除的“标志”类。


例如:


function cardClick(element){

  if (!element.classList.contains('clicked')){

   element.classList.add('clicked');

  // The rest of your code goes here

   }

}

然后当卡片被翻转、删除等时,使用它来删除“点击”类:


element.classList.remove('clicked');

有了上面的内容,它只允许第一次点击,因为第二次点击会看到“clicked”类在元素上,并且会绕过其余的代码。


查看完整回答
反对 回复 2021-06-18
  • 1 回答
  • 0 关注
  • 91 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信