为了账号安全,请及时绑定邮箱和手机立即绑定

在jQuery中删除事件处理程序的最佳方法?

在jQuery中删除事件处理程序的最佳方法?

哔哔one 2019-06-04 16:34:25
在jQuery中删除事件处理程序的最佳方法?我有一个input type="image"..这类似于MicrosoftExcel中的单元格注释。如果有人在文本框中输入数字,则input-image,则设置一个事件处理程序。input-image..然后,当用户单击image,他们得到一个小弹出,以添加一些笔记到数据。我的问题是,当用户在文本框中输入零时,我需要禁用input-image的事件处理程序。我尝试了以下操作,但没有结果。$('#myimage').click(function { return false; });
查看完整描述

3 回答

?
暮色呼如

TA贡献1853条经验 获得超9个赞

jQuery≥1.7

随着jQuery1.7的继续,事件API已经更新,.bind()/.unbind()仍然可用于向后兼容性,但首选方法是使用关于()/取消()职能。下面就是,

$('#myimage').click(function() { return false; }); // Adds another click event$('#myimage').off('click');$('#myimage').on('click.mynamespace',
 function() { /* Do stuff */ });$('#myimage').off('click.mynamespace');

jQuery<1.7

在示例代码中,您只是将另一个单击事件添加到图像中,而不是覆盖前一个:

$('#myimage').click(function() { return false; }); // Adds another click event

然后,两个单击事件都会被触发。

正如人们所说,您可以使用取消绑定来删除所有单击事件:

$('#myimage').unbind('click');

如果要添加单个事件,然后删除它(而不删除可能添加的任何其他事件),则可以使用事件名称空间:

$('#myimage').bind('click.mynamespace', function() { /* Do stuff */ });

为了删除你的事件:

$('#myimage').unbind('click.mynamespace');


查看完整回答
反对 回复 2019-06-04
?
catspeake

TA贡献1111条经验 获得超0个赞

这可以通过使用unbind函数来完成。

$('#myimage').unbind('click');

您可以在jQuery中向同一个对象和事件添加多个事件处理程序。这意味着增加一个新的并不能取代旧的。

有几种更改事件处理程序的策略,例如事件名称空间。在线文档中有一些关于这一点的页面。

看看这个问题(这就是我怎么学到解束缚的)。答案中对这些策略有一些有用的描述。

如何读取jQuery中的绑定悬停回调函数


查看完整回答
反对 回复 2019-06-04
  • 3 回答
  • 0 关注
  • 608 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信