首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >unbind('click')会移除onclick吗?

unbind('click')会移除onclick吗?
EN

Stack Overflow用户
提问于 2013-05-08 02:23:02
回答 2查看 1.8K关注 0票数 1

我正在运行以下代码:

代码语言:javascript
复制
$("#myelement").unbind('click');

当我在VS.NET 2010监视窗口中查看$("#myelement")[0].onclick时,我看到的是"{...}".

unbind('click')应该删除onclick事件吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-08 02:29:44

不,如here所示,它不会删除onclick事件。

绑定的事件存储在jQuery对象中,因此,unbind只是从jQuery对象中删除事件。

unbind将仅删除使用jQuery bind方法和/或已弃用的live方法附加的事件。

如果您希望使用jQuery重置实际的onclick事件,则只需使用以下方法之一:

代码语言:javascript
复制
$('#myelement').attr('onclick','');
$('#myelement').removeAttr('onclick');

如果您想专门向元素的单击添加事件(而不是绑定jQuery onclick事件),则只需使用以下命令:

代码语言:javascript
复制
$('#myelement').attr('onclick','alert(\'hello\')');

我强烈反对上面的方法,因为我相信你可以理解,添加一个函数来转义所有的引号会有点麻烦...

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

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

有关详细信息,请参阅以下内容:

  1. jQuery Attr Method
  2. jQuery Bind Method
  3. jQuery Unbind Method
  4. jQuery On Method
  5. jQuery Off Method
票数 2
EN

Stack Overflow用户

发布于 2013-05-08 02:30:56

试试这个:

代码语言:javascript
复制
$('#myelement').attr('onclick','').unbind('click');
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16425973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档