javascript - JQuery - 重置计数时再次绑定(bind)()

标签 javascript jquery

在我的游戏中,我想确保开始按钮每次出现时只单击一次,以停止它多次加载该功能。

我已经编写了一些代码来计算点击次数并在计数大于零时取消绑定(bind)。

var oneClick = 0;
$(".start-btn-wrapper").bind("click", function () {
    oneClick++;
        if (oneClick > 0) {
        $(this).unbind("click");
    }
        newGame();
});

这工作正常,但我需要一种方法来再次绑定(bind)它,以备下次出现时(单击重新启动按钮时),所以我写了这个来重置计数。

$(".restart-btn").click(function () {
    resetGame();
    oneClick = 0;

});

出于某种原因,这无法完成工作,我正在寻求 SO 的解决方案

最佳答案

您不再绑定(bind),而只是更改 oneClick,它甚至没有经过测试,因为 $(".start-btn-wrapper") 的事件处理程序不再绑定(bind)。

但与其取消绑定(bind)/重新绑定(bind),这代价高昂,为什么不直接测试 oneClick :

$(".start-btn-wrapper").bind("click", function () {
    if (oneClick++ > 0) return;
    newGame();
}

请注意,如果您只需要两个状态, bool 值会更清晰:

var clickable = true;
$(".start-btn-wrapper").bind("click", function () {
    if (!clickable) return;
    newGame();
    clickable = false;
}
$(".restart-btn").click(function () {
    resetGame();
    clickable = true;
});

关于javascript - JQuery - 重置计数时再次绑定(bind)(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13604027/

相关文章:

javascript - 将水平滚动的内容打印到下一页 - 可能吗?

javascript - 如何更改进度条样式?

Javascript 洪水填充功能仅部分工作 [扫雷]

JavaScript - 单击时 jQuery 无法正常工作?

javascript - ~~和+在JavaScript中的区别?

javascript - 通过 NodeJS 运行 Java 函数

javascript - 遵循图像 HTTP 请求的重定向,客户端

javascript - Angular JS - 显示 1 div 并隐藏所有其他 div

javascript - 遍历 jquery data() 对象并将它们推送到另一个 data() 对象(数组)中

javascript - 如何使脚本类型既是文本/巴别塔又是模块?