我运行了以下内容:解除绑定('点击')移除onclick?
$("#myelement").unbind('click');
当我认为在VS.NET 2010监视窗口$("#myelement")[0].onclick
,我看到"{...}".
应该unbind('click')
删除onclick
事件?
我运行了以下内容:解除绑定('点击')移除onclick?
$("#myelement").unbind('click');
当我认为在VS.NET 2010监视窗口$("#myelement")[0].onclick
,我看到"{...}".
应该unbind('click')
删除onclick
事件?
不,它不会删除onclick
事件,如演示here所示。
绑定事件存储在jQuery对象中,因此,unbind
只是从jQuery对象中移除事件。
unbind
将仅移除使用jQuery bind
方法和/或不推荐使用的live
方法附加的事件。
如果要重置使用jQuery实际onclick
事件,那么就请使用下列方法之一:
$('#myelement').attr('onclick','');
$('#myelement').removeAttr('onclick');
如果你想添加一个事件,具体的元素的onclick
(不绑定jQuery的单击事件),那么只需使用以下命令:
$('#myelement').attr('onclick','alert(\'hello\')');
我强烈disadvise上面的方法虽然因为我相信你可以欣赏,增加了功能,这将是一个有点棘手逃避所有的报价...
另外,我可能会建议你使用on
和off
jQuery的方法,而不是。虽然这些仅是jQuery中的较新版本可用时,它们是优选的方法如所述的位置:
在jQuery 1.7中,。对()方法是用于 事件处理程序安装到一个文件的优选方法。对于早期版本, .bind()方法用于将事件处理程序直接附加到 元素。处理程序被附加到jQuery对象的当前选定元素 中,所以这些元素必须存在于发生.bind()的调用 处。要获得更灵活的事件绑定,请参阅.on()或.delegate()中事件委托的讨论 。
更多信息请参阅以下内容:
做完上述重置后,$('#myelement')。click(function(){...});努力与onclick联系新事件? – 4thSpace 2013-05-07 18:46:24
@ 4thSpace当然,它确实是 – 2013-05-07 18:47:09
@ 4thSpace Ooo等等,对不起,我误解了你所说的。不是这样,我会更新我的回答 – 2013-05-07 18:47:51
@MohammadAdil权,但附有onclick事件处理程序= “...” 被解放与'.unbind()'?这是一个问题(至少我理解它的方式) – 2013-05-07 18:27:25
它消除了它们,因为单击元素不会触发之前绑定的任何函数。 jQuery如何在“幕后”做这件事并不重要,但它可能不会将'onclick'设置为null。 – 2013-05-07 18:28:55
检查了这一点:http://jsfiddle.net/AwPnn/ – Aristos 2013-05-07 18:32:09