Javascript jQuery.unbind()方法是否只对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()才起作用 这是真的吗?是否有其他方法将所有事件从一组元素中解除绑定 谢谢

我试图为特定容器中的所有元素解除绑定所有事件处理程序。类似于DIV。但是这些事件是不使用jQuery绑定/注册的。有些是用
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!