Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在第二次触发功能按钮后,执行代码两次_Javascript_Jquery - Fatal编程技术网

Javascript 在第二次触发功能按钮后,执行代码两次

Javascript 在第二次触发功能按钮后,执行代码两次,javascript,jquery,Javascript,Jquery,我做了一个游戏,我有我不能解决的问题。 我有函数,里面有按钮。单击()。在我第二次执行函数之后,按钮点击执行代码两次,例如,我在这里发布了一些有相同问题的简单代码 单击第一个按钮时,会触发一次警报。当我单击第二个按钮和第一个按钮时,会触发两次警报。我只想触发警报一次。按钮必须保持功能。对不起,英语不好 我也在这儿闲逛 您需要在绑定之前解除对click事件的绑定 function testf() { $("#1").unbind('click'); $("#1").click(functi

我做了一个游戏,我有我不能解决的问题。 我有函数,里面有按钮。单击()。在我第二次执行函数之后,按钮点击执行代码两次,例如,我在这里发布了一些有相同问题的简单代码

单击第一个按钮时,会触发一次警报。当我单击第二个按钮和第一个按钮时,会触发两次警报。我只想触发警报一次。按钮必须保持功能。对不起,英语不好

我也在这儿闲逛


您需要在绑定之前解除对click事件的绑定

function testf() {
  $("#1").unbind('click');
  $("#1").click(function() {
    alert("test");
  });

  $("#2").unbind('click');    
  $("#2").click(function() {
    testf();
  });
}
testf();

不知何故,此函数会将事件绑定两次。在此处更改任何内容都会消除此问题

  $(".address_field").each(function(index){  
var widget = new AddressFinder.Widget(this, "WR3NUKVGC4Q97FPHBJXL");

这是因为您将事件处理程序创建嵌套在
testf()
中。依次,单击
#2
会向每个元素添加另一个单击处理程序。你到底想达到什么目的?我喜欢太空游戏。功能在太空中产生行星和物体。用按钮控制飞船从一个星球跳到另一个星球。访问完所有行星后,您可以跳转到另一个太阳系,当您这样做时,我需要再次调用函数1)
unbind()
不推荐使用它。改用
off()
。2) OP只是使用了不正确的嵌套事件处理程序模式。如果你能正确地构造它们,就没有必要解开任何东西。谢谢你,伙计,解开在我的游戏中非常有效。你能解释一下为什么使用它是个坏主意吗?@Jac0b这是因为如果UI逻辑设计正确,就没有理由在运行时动态添加/删除单击处理程序。这样做是一个更大的问题的代码气味,应该首先解决,而不是把它作为一个创可贴。
  $(".address_field").each(function(index){  
var widget = new AddressFinder.Widget(this, "WR3NUKVGC4Q97FPHBJXL");