Javascript 记忆游戏黑客(不需要)双击同一张牌并进行匹配
如果用户在记忆游戏中点击同一张卡,我试图不允许调用匹配。但它仍然允许这样做 我试着跟踪鼠标,尽量不让它点击同一张卡Javascript 记忆游戏黑客(不需要)双击同一张牌并进行匹配,javascript,Javascript,如果用户在记忆游戏中点击同一张卡,我试图不允许调用匹配。但它仍然允许这样做 我试着跟踪鼠标,尽量不让它点击同一张卡 <script> var OpenCard = []; if (OpenCard.length == 2){ const CardType1 = OpenCard[0].querySelector('i').classList.item(1) const CardType2 = OpenCard[1].querySelector(
<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');
var OpenCard=[];
if(OpenCard.length==2){
常数CardType1=
OpenCard[0]。查询选择器('i')。类列表。项(1)
常数CardType2=
OpenCard[1]。查询选择器('i')。类列表。项(1)
控制台日志(CardType1、CardType2);
movespassed();
勾选星号();
//比较两张牌并检查是否匹配
如果(CardType1==CardType2){
OpenCard.forEach(函数(卡){
card.classList.add('match')
});
OpenCard=[]
游戏记分++;
控制台日志(游戏分数);
}
//如果卡不匹配,关闭它们
否则{
log(“我在这里”)
setTimeout(函数(){
OpenCard.forEach(函数(卡){
card.classList.remove('show','open')
})
OpenCard=[]
},200);
}
职能(c){
OpenCard.push(卡片);
轨道.推(卡);
card.classList.add('show','open');
我觉得我需要查看用户单击的实际元素,以便更好地回答这个问题,但作为一般规则,我喜欢使用“标志”类,这些类添加到元素中,然后在需要时删除
例如:
function cardClick(element){
if (!element.classList.contains('clicked')){
element.classList.add('clicked');
// The rest of your code goes here
}
}
然后,当卡片翻转、删除等时,使用此选项删除“单击”类:
在上面,它只允许第一次点击,因为第二次点击会看到“点击”类位于元素上,将绕过其余的代码。您的代码有点混乱。什么是
OpenCard
?它似乎是一个元素数组。为元素提供唯一的id,您可以比较一张卡的id与另一张卡的id,如果它们相同,则单击了同一张卡。如果没有HTML,很难分辨。您可能要创建一个复制您当前问题的。OpenCard基本上是一个空白数组。它等于=[]正是如此,我正在将卡片放入该数组中。请您的问题包括创建OpenCard
并用元素填充它的代码。我现在就这样做了。
element.classList.remove('clicked');