解绑内联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