根据FCC项目(here),我目前正在构建“ simons游戏”。
  在我的第一个版本(功能不完全)的演示中,我发现一个奇怪的错误,每次单击按钮(彩色div)一次,回调函数“ startAnswer”将被调用两次,因此游戏将无法正确进行,这里是我在CodePen.io上的代码。
  my codehttps://codepen.io/NxDon/pen/eRpRra

这是关于我的代码如何工作的注释:


我通过新的GameConstructor(第99行)创建了一个游戏对象;
我将回调函数绑定到“开始”和“严格”按钮。
当玩家单击“开始”按钮时,将调用回调函数“ startGame”(第17行),它将初始化一些参数,并显示答案供玩家重复;
当显示结束时,我单击四个铃声区域之一(称为按钮)以匹配答案。环形区域在游戏开始阶段使用回调函数“ startAnswer(line 55)”绑定了click事件,我的直觉是如果单击一次环形区域,则回调函数将调用一次,相反,startAnswer被连续调用两次。那部分让我感到困惑。谢谢你的帮助。

最佳答案

您有1个以上的按钮监听器,

$(id).off('click');//removes past listeners
$(id).click(function(){
    startAnswer();
});


https://codepen.io/smsbhatt/pen/yXYPWW

关于javascript - javascript click事件:单击一次会触发两次回调函数吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44427491/

10-09 14:28