Javascript 解除绑定后使用绑定
我找到一个如下所示的代码 Html代码: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
<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")
});