我会尝试解释我的问题。我正在使用mouseup
事件侦听器,因此无论何时执行单击并且目标不是所需元素,我都可以进行检查。这是我正在使用的代码:
function clickOutListener(element, callbackFunction){
$(document).mouseup(function(e){
if(!$(element).is(e.target) && $(element).has(e.target).length === 0) callbackFunction.call(this, null);
});
}
如您所见,事件侦听器绑定到全局文档元素,解除侦听器绑定的方式是:
$(document).off("mouseup");
这就是我需要实现的目标。如果我取消绑定mouseup
侦听器,它将影响使用此侦听器的其他元素(下拉列表和其他功能)。我必须猜测,每次我注册一个监听器时,它都不会覆盖先前定义的监听器,而是添加已定义的目标函数。
如何为同一个侦听器访问不同的已定义目标函数?
$(document).mouseup(funct1);
$(document).mouseup(funct2);
$(document).mouseup(funct3);
如何仅针对“funct2”取消注册已注册的侦听器?
提前谢谢。
答案 0 :(得分:2)
使用.on()
语法时,您可以命名事件。
$(document).on('mouseup.myNamespace', function(e){ ... }
这允许您按名称空间删除事件,同时保留其他事件。
$(document).off('mouseup.myNamespace');