1

我正在运行以下内容:

$("#myelement").unbind('click');

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

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

4

2 回答 2

2

尝试这个 :

$('#myelement').attr('onclick','').unbind('click');
于 2013-05-07T18:30:55.840 回答
2

不,它不会删除onclick事件,如此处所示

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

unbind只会删除使用 jQuerybind方法和/或不推荐使用的方法附加的事件live

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

$('#myelement').attr('onclick','');
$('#myelement').removeAttr('onclick');

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

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

我强烈反对上述方法,但我相信你会欣赏,向它添加一个函数会有点棘手,以逃避所有的引号......


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

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

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

  1. jQuery Attr 方法
  2. jQuery 绑定方法
  3. jQuery 解绑方法
  4. jQuery On 方法
  5. jQuery 关闭方法
于 2013-05-07T18:29:44.323 回答