我在学校为班级创建了一个记忆游戏,我使用的是Bootstrap和jQuery。见Github。为了测试,使用这个jsfiddle,因为github代码会改变,如果你想为自己的目的分叉它,我已经包含了它。jQuery第二次点击后解除绑定事件
我已经修建了下面的逻辑代码:
- 你想要多少牌可打挑选。
- 卡片加载和随机化。每对具有相同的类别(卡片*和图形*)。
- 你点击一张卡片,然后在另一张卡片上,如果他们匹配,他们会被丢弃,否则你会再次选择。
我目前遇到的问题是第三步,即当你点击第三张显示前两张时,这意味着我需要包括一些东西来逃避第一次点击事件。至少这是我对这个问题的第一个建议。如果你有其他建议来完全重组第三步,请不要害羞地说明原因。
// check if picked cards' classes match
jQuery("[class^=card]").click(function() { //picking the first card
jQuery(this).css('color', '#000');
var firstCard = $(this);
var firstCardClass = $(this).find('[class*=glyphicon]').attr('class').split(' ')[1];
jQuery("[class^=card]").click(function() { //picking the second card
var secondCard = $(this);
var secondCardClass = $(this).find('[class*=glyphicon]').attr('class').split(' ')[1];
console.log(firstCardClass);
console.log(secondCardClass);
if (firstCardClass == secondCardClass) {
console.log("yes")
$(firstCard).css('color', '#005d00'); //make them green
$(secondCard).css('color', '#005d00');
setTimeout(function() {
$(firstCard).css('display', 'none'); //discard
$(secondCard).css('display', 'none');
}, 1000);
}
else {
console.log("no");
$(firstCard).css('color', '#cc0000'); //make them red
$(secondCard).css('color', '#cc0000');
setTimeout(function() {
$(firstCard).css('color', '#fff'); //hide again
$(secondCard).css('color', '#fff');
}, 1000);
}
});
});
注意的图标应该是白色的卡片,让他们灰色的,看那些女巫匹配,而不需要萤火虫的。如果你点击多于两张卡,你会看到问题所在(如果我没有解释清楚)。我尝试在每个语句的末尾添加单击解除绑定事件,但无法使其工作。
尽力而为!谢谢!
只是尝试$(EL).off (“事件名称”)后,第二次点击..将需要有一个计数器,虽然 –
我已经尝试过关闭()和解除绑定(),但我想卡后点击,以便该过程可以重新开始开始。我怎么做? – pres
你不需要'click'里面的'click',因为它们都绑定到同一组选择器。 – lshettyl