2014-02-28 48 views
1

我有这样的代码:如何在不影响其他人收听同一事件的情况下解除绑定(关闭)DOM元素?

$('#el').change(function (e) { 
    if (!self.m_selected) 
     return; 
    self._onChange(e); 
}); 

即在多个地方(对象的多个实例)...并在某些情况下,我想一个实例停止侦听改变事件,但是,其它情况下仍然需要倾听。

如果我只是运行$('#el').off('change');,所有将停止监听,但我只希望这一个类实例停止监听?

回答

2

如果您保存到处理函数的引用,你可以删除只是一个特定的处理程序:

var handler = function (e) { 
     if (!self.m_selected) 
      return; 
     self._onChange(e); 
    }; 
$('#el').change(handler); 

及更高版本:

$("#el").off('change', handler); 
相关问题