Jquery:删除事件处理程序(例如'cklick'),但保留其他事件处理程序(用于'click')[重复]

问题描述 投票:1回答:1

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

我有多个事件监听器。所有人都收听同一事件(在小提琴示例中单击button.a)。现在,我想断开一个事件侦听器的连接,但我不想(!)断开所有事件侦听器的连接,然后重新连接我要保留的事件监听器。

我有多个类,它们具有一些事件侦听器,并且我只想断开一个类的事件侦听器。

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的事件侦听器,同时使所有其他类的事件侦听器保持活动状态。

我无法处理这个问题,例如:

$('#main').off();
a.reconnect();
c.reconnect();

在我的情况下,类B只是从后端获取数据,并决定停止自行监听事件。

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

如果有一个小的jsfiddle示例:https://jsfiddle.net/skmqjwt7/我有多个事件监听器。所有人都收听同一事件(在小提琴示例中单击button.a)。现在我想断开一个...

javascript jquery events triggers unbind
1个回答
-2
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.