解绑内联onClick不能在jQuery中工作?
好的,我想知道如何在jQuery中取消绑定内联onclick事件。 你认为.unbind()
会起作用,但事实并非如此。
要自己测试一下,请使用以下HTML和JavaScript:
function UnbindTest() { $("#unbindTest").unbind('click'); } function BindTest() { $("#unbindTest").bind('click', function() { alert("bound!"); }); }
正如您所看到的,取消绑定并不解除内联onclick
事件的绑定…但是它解除了使用bind()
添加的click事件的bind()
。
所以,我想知道是否有办法解除内联onclick事件,而不是执行以下操作:
$("#unbindTest").get(0).onclick = "";
谢谢
jQuery的unbind不适用于onclick
属性 – 它只适用于通过bind
添加的函数,因此可用于$(...).data('events')
。 您必须使用removeAttr
删除onclick
。
阅读此问题以获取更多信息。
unbind
unbinds使用bind
注册的事件处理程序,而不是通过onclick
或其他DOM0属性分配的事件处理程序。 来自文档:
任何使用
.bind()
附加的处理程序都可以使用.unbind()
删除。
编辑 :通过清除元素上的相关属性取消绑定DOM0处理程序。 我不得不去查看jQuery的做法: removeAttr
。