在我的游戏中,我想确保开始按钮每次出现时只单击一次,以停止它多次加载该功能。
我已经编写了一些代码来计算点击次数并在计数大于零时取消绑定(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/