如何在jQuery中取消绑定特定绑定

时间:2015-09-28 05:19:57

标签: jquery

我有2个函数( abc def ),其中我已将submit()事件附加到元素,如下所示:

function abc(param_1, param_2) {
  jQuery('#element_id').one("submit", function(e){
    e.stopImmediatePropagation();
    someOtherFunction(param_1, param_2);
  });
}

function def() {
  jQuery('#element_id').one("submit", function(e){
    some other code
  });
}

问题:我需要每次都执行函数 def 中的submit()绑定,但根据某些条件,我可能需要取消绑定{{1仅在函数 abc 内绑定。我怎样才能做到这一点?

注意:在将submit()绑定到 abc def ,因为条件是动态实现的。如果发生这种情况,我不希望在{strong> abc 函数内部submit()阻止执行。

1 个答案:

答案 0 :(得分:1)

Jquery允许添加具有命名空间的事件,因此,我们可以添加events.namespace,并相应地处理绑定并关闭单个事件。

有关详细信息,请参阅:https://api.jquery.com/event.namespace/

因此,相同的提交可以重写为"submit.abc""submit.def",然后.off("submit.abc")