你好我用js和jQuery创建了内存游戏,我有一个小问题,因为现在有人可以再显示2个以上的隐藏元素。
if(arr1[0] === arr1[1]){
score += 10;
setTimeout(function () {
$board.find('[data-id="'+arr1[0]+'"]').remove()
arr1 = [];
scoreHTML.text(score)
},500)
} else if (arr1.length === 2 && arr1[0] !== arr1[1]) {
e.preventDefault();
setTimeout(function () {
$('.box').data('data-id', arr1[0]).fadeIn();
$('.box').data('data-id', arr1[1]).fadeIn();
arr1 = [];
},500)
}
任何人都知道如何在此超时时阻止点击事件?
答案 0 :(得分:0)
当你不希望它被执行时,你不应该清除超时吗?
clearTimeout(this.timeoutId);
if (someCondition) {
this.timeoutId = setTimeout(function () {
// Do something
},500);
} else {
this.timeoutId = setTimeout(function () {
// Do something else
},500);
}
(我使用this.timeoutId,假设代码嵌入在一个类中但是另外你可以使用变量)
我不确定我的问题是否正确,但希望这会有所帮助。