好的,我想知道如何在jQuery中取消绑定内联onclick事件。您以为.unbind()
会工作,但不会。
要自己进行测试,请尝试以下HTML和JavaScript:
function UnbindTest() {
$("#unbindTest").unbind('click');
}
function BindTest() {
$("#unbindTest").bind('click', function() { alert("bound!"); });
}
<button type="button" onclick="javascript:UnbindTest();">Unbind Test</button>
<button type="button" onclick="javascript:BindTest();">Bind Test</button>
<button type="button" onclick="javascript:alert('unbind me!');" id="unbindTest">Unbind Button</button>
如您所见,取消绑定不会取消绑定内联onclick
事件……但是,它确实可以取消绑定添加了的click事件bind()
。
因此,我想知道是否有一种方法可以解除内联onclick事件的绑定,而不需要执行以下操作:
$("#unbindTest").get(0).onclick = "";
谢谢
jQuery的unbind不适用于onclick
属性-它仅适用于通过添加的功能,bind
因此可在中使用$(...).data('events')
。您必须使用removeAttr
删除onclick
。
阅读此问题以获取更多信息。
unbind
取消绑定已注册的事件处理程序bind
,而不是通过onclick
或其他DOM0属性分配的事件处理程序。从文档:
.bind()
可以使用删除任何已附加的处理程序.unbind()
。
编辑:通过清除元素上的相关属性来解除DOM0处理程序的绑定。我不得不去仰视这样做的jQuery的方式:removeAttr
。
本文地址:http://jquery.askforanswer.com/quxiaobangdingneilianonclickzaijqueryzhongbuqizuoyong.html
文章标签:javascript , jquery
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!
文章标签:javascript , jquery
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!
评论已关闭!