我正在运行以下内容:

$("#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 click事件),则只需使用以下命令:

$('#myelement').attr('onclick','alert(\'hello\')');


我强烈建议您不要使用上述方法,不过,我相信您会赞赏的,为此添加一个函数将所有引号转义会有些棘手...



另外,也许我建议您改用onoff jQuery方法。虽然这些仅在较新版本的jQuery中可用,但它们是此处所述的首选方法:


从jQuery 1.7开始,.on()方法是首选
将事件处理程序附加到文档。对于早期版本,
.bind()方法用于将事件处理程序直接附加到
元素。处理程序将附加到当前选择的元素中
jQuery对象,因此这些元素必须在调用时存在
.bind()发生。有关更灵活的事件绑定,请参见讨论
.on()或.delegate()中的事件委派。


有关更多信息,请参见以下内容:


jQuery Attr Method
jQuery Bind Method
jQuery Unbind Method
jQuery On Method
jQuery Off Method

关于jquery - unbind('click')是否会删除onclick?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16425973/

10-12 13:02
查看更多