我正在运行以下内容:
$("#myelement").unbind('click');
当我在VS.NET 2010 Watch窗口中查看$("#myelement")[0].onclick
时,我看到"{...}".
unbind('click')
应该删除onclick
个事件吗?
答案 0 :(得分:2)
不,它不会删除onclick
事件,如演示here。
绑定事件存储在jQuery对象中,因此,unbind
只是从jQuery对象中删除事件。
unbind
只会删除使用jQuery bind
方法和/或弃用的live
方法附加的事件。
如果要使用jQuery重置实际的onclick
事件,请使用以下方法之一:
$('#myelement').attr('onclick','');
$('#myelement').removeAttr('onclick');
如果要将事件添加到元素的onclick
(不绑定jQuery点击事件),则只需使用以下内容:
$('#myelement').attr('onclick','alert(\'hello\')');
我强烈反对上述方法,但我相信你可以欣赏,添加一个功能会有点棘手逃避所有引用......
此外,我建议您使用on
和off
jQuery方法。虽然这些只在较新版本的jQuery中可用,但它们是这里所述的首选方法:
从jQuery 1.7开始,.on()方法是首选方法 将事件处理程序附加到文档。对于早期版本, .bind()方法用于直接将事件处理程序附加到 元素。处理程序附加到当前选定的元素中 jQuery对象,因此这些元素必须存在于调用点 到.bind()发生。有关更灵活的事件绑定,请参阅讨论 .on()或.delegate()中的事件委托。
有关详细信息,请参阅以下内容:
答案 1 :(得分:2)
试试这个:
$('#myelement').attr('onclick','').unbind('click');