Javascript jQuery.unbind()方法是否只对jQuery创建的事件有效?
我试图为特定容器中的所有元素解除绑定所有事件处理程序。类似于DIV。但是这些事件是不使用jQuery绑定/注册的。有些是用Javascript jQuery.unbind()方法是否只对jQuery创建的事件有效?,javascript,jquery,javascript-events,Javascript,Jquery,Javascript Events,我试图为特定容器中的所有元素解除绑定所有事件处理程序。类似于DIV。但是这些事件是不使用jQuery绑定/注册的。有些是用onclick=“…”手动绑定的,或者使用常规的本机JavaScript 但是当我做这样的事情时 $('#TheDivContainer').find('div,td,tr,tbody,table').unbind(); 它似乎不起作用。这让我相信,只有当事件最初由jQuery绑定时,.unbind()才起作用 这是真的吗?是否有其他方法将所有事件从一组元素中解除绑定 谢谢
onclick=“…”
手动绑定的,或者使用常规的本机JavaScript
但是当我做这样的事情时
$('#TheDivContainer').find('div,td,tr,tbody,table').unbind();
它似乎不起作用。这让我相信,只有当事件最初由jQuery绑定时,.unbind()才起作用
这是真的吗?是否有其他方法将所有事件从一组元素中解除绑定
谢谢 你说得对。如:
已附加的任何处理程序
with.bind()可以通过删除
.unbind()
您始终可以这样做:
$('#TheDivContainer').find('div,td,tr,tbody,table')
.unbind('click')
.attr('onclick', ''); // edited to change null to ''
取消绑定只对jQuery创建的事件有效,因为所有执行此操作的方法(addEventListener和attachEvent)都需要节点、eventname和处理程序作为参数<代码>绑定负责为您存储这些内容
顺便说一句,DOM0样式的事件列表(
.foo=function(…)
只能通过将相同的属性设置为类似于null
的其他属性来删除,这对我很有效-请参阅此测试页:-您可以尝试调用attr()
,将空字符串作为第二个参数,而不是null!