首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jquery:删除eventhandler(例如'cklick'),但保留其他eventhandler(用于'click')

问Jquery:删除eventhandler(例如'cklick'),但保留其他eventhandler(用于'click')
EN

Stack Overflow用户
提问于 2020-01-16 20:54:53
回答 1查看 29关注 0票数 1

如果有一个小jsfiddle示例:https://jsfiddle.net/skmqjwt7/

我有多个事件监听器。所有人都在监听相同的事件(按钮。在小提琴示例中单击)。现在我想断开一个事件侦听器,但我没有(!)我想断开所有事件侦听器,并重新连接那些我想要保留的事件侦听器。

我有多个类,其中有一些事件侦听器,我只想断开一个类的事件侦听器。

代码语言:javascript
复制
class a{
...stuff
   $('#main').on('bla', function(e){
     ...stuff
   });
}
class b{
...stuff
   $('#main').on('bla', function(e){
     ...stuff
   });
   function disconnectMe()
   {
      //disconnect B on('bla')
   }
}

类B不知道A(或任何其他可能监听该事件的类)。因此,我只想删除B的eventlisteners,同时保留所有其他类的eventlisteners。

我不能处理这种全局断开,就像:

代码语言:javascript
复制
$('#main').off();
a.reconnect();
c.reconnect();

在我的例子中,类B只是从后端获取数据,并决定停止监听它自己的事件。

这个是可能的吗?在我目前的例子中,一个自定义事件在$(document)上触发,任何其他javascript类都可以侦听,但我不知道如何只删除一个侦听器。

EN

回答 1

Stack Overflow用户

发布于 2020-01-16 21:00:40

unbind()方法是jQuery中的一个内置方法,用于删除任何选定的事件处理程序。此方法可用于移除特定的事件处理程序或停止特定的函数。它适用于任何使用事件对象的事件处理程序。

注意:如果未提供参数,则该方法适用于指定元素中的所有事件处理程序。语法:

代码语言:javascript
复制
$(selector).unbind(event, function, eventObj)

参数:此方法接受三个参数,如上所述,如下所述: event:它是一个可选参数,用于指定事件(一个或多个)以将其从元素中移除。function:可选参数,用于指定要从元素的指定事件解绑的函数的名称。eventObj:可选参数,用于指定要从事件绑定函数中移除的事件对象。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59770165

复制
相关文章

相似问题

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