我找到了如下所示的代码。
Html代码:
<div id="myButton">Click Here</div>
JQuery代码:
$("#myButton").unbind("click").bind("click",function(){
alert("Working")
});
在绑定元素之前,取消绑定(“点击”)需要什么?
如果不使用unbind,它也可以工作。如下所示
$("#myButton").bind("click",function(){
alert("Working")
});
哪一个最好?有什么区别?
答案 0 :(得分:2)
这只能确保没有附加其他click
事件侦听器。因此,您的处理程序将是单击#myButton
编辑:为@ T.J。 Crowder在评论中指出,unbind()
不会以与调用bind()
不同的方式影响处理程序。
值得注意的是:
从jQuery 1.7开始,.on()和.off()方法首选在元素上附加和删除事件处理程序
(摘自jQuery.unbind() doc)。事实上,unbind()
方法off()
is implemented internally。
考虑一下:
$("#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"
答案 1 :(得分:0)
通过解除元素上的“click”事件,您实际上正在删除与该元素关联的所有onclick事件。即如果你的html表单的输入字段有一个onclick事件并且它调用了一个函数,它将被解除绑定。在解除绑定之后,您将绑定另一个单击事件,该事件将调用您的函数onclick该元素。
答案 2 :(得分:0)
$("#myButton").unbind("click").bind("click",function(){
alert("Working")
});
jQuery bind()函数用于将事件处理程序附加到元素,而unbind()用于从元素中分离现有的事件处理程序。请参阅演示http://www.mkyong.com/wp-content/uploads/jQuery/jQuery-bind-unbind-example.html
答案 3 :(得分:0)
没有这个html代码的url,我不确定#myButton
元素是否附加了其他click
处理程序,但可以肯定的是unbind
方法删除了此处的所有处理程序我认为作者只想触发一次点击事件。
此外,您可以查看浏览器的调试检查器上是否还有其他事件处理程序。
希望这会对你有所帮助。