如何检测每一个“;这";点击式javascript

如何检测每一个“;这";点击式javascript,javascript,Javascript,我想基本上检测每张卡上的点击事件,并将这张卡保存在一个变量中,但firstGuess会隐藏secondGuess。解决办法是什么 for(设i=0;ielem.classList.remove(“card--flip”)) 显示=[];//初始化下一回合 }, 1000); } } .card--翻转{ 背景色:白色; } div{ 背景色:黑色; 保证金:5px; 宽度:50px; 高度:50px; 显示:内联块; } 分数:如果(firstGuess==secondGuess)总是正

我想基本上检测每张卡上的点击事件,并将这张卡保存在一个变量中,但firstGuess会隐藏secondGuess。解决办法是什么

for(设i=0;i}
这个问题不是很清楚,但我认为你需要区分第一次和第二次点击卡片。为此,我建议您使用一个全局bool变量,最初设置为false

var first_click = false;
然后,按如下方式修改您的函数:

function compareCards() {
first_click = !first_click;
if (first_click) {
//code you need after first click
} else {
//code you need after second click
}
//code you need to do anyway independently if first or second click.
}

如果没有用于toggleFlipEffect的HTML和代码,就不可能知道您是如何实现卡片翻转的。本质上,你需要采取不同的行动来点击第一张牌,而不是第二张牌。首先,你只需要注意它是哪张卡。只有在第二次时,才需要执行比较

请注意,当猜测错误时,您需要在再次隐藏这些卡之前进行延迟,否则用户将没有时间看到第二张卡

以下是您如何做到这一点:

函数切换FlipEffect(){}//模型。
var cards=document.queryselectoral('div');
for(设i=0;i=2)返回;
//显示点击的卡片
这个.classList.add(“card--flip”);
//将其与上一个添加到数组中(如果有)
推(这个);
//需要另一张卡吗?
if(discovered.length<2)返回;//允许第二选择
//我们有两张暴露的卡片。检查它们是否相同
如果(显示[0].dataset.value==显示[1].dataset.value){
分数+=1;//是,保留分数
显示=[];//初始化下一回合
score.textContent=分数;
}否则{
//不同:再次隐藏这两张卡,但要延迟一段时间
setTimeout(U8;=>{
exposed.forEach(elem=>elem.classList.remove(“card--flip”))
显示=[];//初始化下一回合
}, 1000);
}
}
.card--翻转{
背景色:白色;
}
div{
背景色:黑色;
保证金:5px;
宽度:50px;
高度:50px;
显示:内联块;
}




分数:
如果(firstGuess==secondGuess)
总是正确的。永远不要转到else语句。因为两者都是同一个变量。你想用它做什么?你能解释一下并添加你的标记吗?@suraj我想点击卡片并将我的选择存储在一个变量中,然后点击另一个并做同样的事情,但不会发生,因为“这”只适用于第一张卡片。使用两个函数。一个用来保存变量,一个用来比较变量。在保存变量的函数中,仅当两个变量都已赋值时才调用比较函数。@Dragoş以及如何处理此变量secondGuess,因为此时未检测到它all@Miqez我已经为你更新了小提琴。它现在可以工作了,但只适用于第一对。从现在开始,您需要以某种方式将猜测放入数组中,并在用户正确猜测每对时增加每个猜测。