如果用户在记忆游戏中点击同一张卡片,我试图不允许调用匹配。虽然它仍然允许我试过跟踪鼠标并试图不让它点击同一张卡片。<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”类在元素上,并且会绕过其余的代码。
添加回答
举报
0/150
提交
取消