我正在运行以下代码:
$("#myelement").unbind('click');当我在VS.NET 2010监视窗口中查看$("#myelement")[0].onclick时,我看到的是"{...}".
unbind('click')应该删除onclick事件吗?
发布于 2013-05-08 02:29:44
不,如here所示,它不会删除onclick事件。
绑定的事件存储在jQuery对象中,因此,unbind只是从jQuery对象中删除事件。
unbind将仅删除使用jQuery bind方法和/或已弃用的live方法附加的事件。
如果您希望使用jQuery重置实际的onclick事件,则只需使用以下方法之一:
$('#myelement').attr('onclick','');
$('#myelement').removeAttr('onclick');如果您想专门向元素的单击添加事件(而不是绑定jQuery onclick事件),则只需使用以下命令:
$('#myelement').attr('onclick','alert(\'hello\')');我强烈反对上面的方法,因为我相信你可以理解,添加一个函数来转义所有的引号会有点麻烦...
另外,我建议您使用on和off jQuery方法。虽然这些方法仅在较新版本的jQuery中可用,但它们是此处所述的首选方法:
从jQuery 1.7开始,.on()方法是将事件处理程序附加到文档的首选方法。对于早期版本,.bind()方法用于将事件处理程序直接附加到元素。处理程序附加到jQuery对象中当前选定的元素,因此这些元素在调用.bind()时必须存在。有关更灵活的事件绑定,请参阅.on()或.delegate()中关于事件委托的讨论。
有关详细信息,请参阅以下内容:
发布于 2013-05-08 02:30:56
试试这个:
$('#myelement').attr('onclick','').unbind('click');https://stackoverflow.com/questions/16425973
复制相似问题