在500毫秒停止点击事件,我怎么能这样做?

时间:2018-04-28 19:39:34

标签: javascript jquery

你好我用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)
    }

任何人都知道如何在此超时时阻止点击事件?

1 个答案:

答案 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,假设代码嵌入在一个类中但是另外你可以使用变量)

我不确定我的问题是否正确,但希望这会有所帮助。