Javascript 解除绑定后使用绑定

Javascript 解除绑定后使用绑定,javascript,jquery,html,click,Javascript,Jquery,Html,Click,我找到一个如下所示的代码 Html代码: <div id="myButton">Click Here</div> 在绑定元素之前,解除绑定(“单击”)需要什么 如果未使用“解除绑定”,它也可以工作。如下图所示 $("#myButton").bind("click",function(){ alert("Working") }); 哪一个最好?区别是什么?这只确保没有附加其他单击事件侦听器。因此,您的处理程序将是单击#myButton 编辑:正如@T.J.Crow

我找到一个如下所示的代码

Html代码:

<div id="myButton">Click Here</div>
在绑定元素之前,解除绑定(“单击”)需要什么

如果未使用“解除绑定”,它也可以工作。如下图所示

$("#myButton").bind("click",function(){
   alert("Working")
});

哪一个最好?区别是什么?

这只确保没有附加其他
单击
事件侦听器。因此,您的处理程序将是单击
#myButton

编辑:正如@T.J.Crowder在评论中指出的那样,
unbind()
不会以与调用
bind()
不同的方式影响附加的处理程序

同样值得注意的是:

从jQuery1.7开始,最好使用.on()和.off()方法来附加和删除元素上的事件处理程序

(摘自"中国日报")。实际上,
unbind()
是通过
off()
方法实现的

考虑:

$("#myButton").bind('click', function () {
  console.log('click 1');
});

$("#myButton").unbind('click').bind('click', function () {
  console.log('click 2');
});

// When clicked, prints "click 2"
与:

$("#myButton").bind('click', function () {
  console.log('click 1');
});

// note: no unbind here
$("#myButton").bind('click', function () {
  console.log('click 2');
});

// When clicked, prints "clicked 1" followed by "clicked 2"
通过解除某个元素上的“click”事件的绑定,实际上您正在删除与该元素关联的所有onclick事件。i、 如果你的html表单的输入字段有一个onclick事件,并且它调用了一个函数,那么它将被解除绑定。解除绑定后,您将绑定另一个click事件,该事件将在单击该元素时调用您的函数

$("#myButton").unbind("click").bind("click",function(){
   alert("Working")
});

jQuery bind()函数用于将事件处理程序附加到元素,而unbind()函数用于将现有事件处理程序与元素分离。请看一个没有此html代码url的演示,我不确定
#myButton
元素是否附加了其他
click
处理程序,但可以确定的是
unbind
方法删除此元素上的所有处理程序,我想作者只想触发一次单击事件。 此外,您还可以查看浏览器的调试检查器上是否有其他事件处理程序。
希望这能对您有所帮助。

请参阅:从jQuery1.7开始推荐。您的代码将是
$(“#myButton”).off().on()
。值得注意的是,这只会解除与jQuery连接的处理程序的绑定。它不会解除与
onclick
属性、
onclick
属性或
addEventListener
相关的文件的绑定。它也不会影响与按钮匹配的委托处理程序。
$("#myButton").unbind("click").bind("click",function(){
   alert("Working")
});