我有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 <内的元素之前,我无法检查条件(if - else) strong>,因为条件是动态实现的。如果发生这种情况,我不希望在{strong> abc 函数内部submit()
阻止执行。
答案 0 :(得分:1)
Jquery允许添加具有命名空间的事件,因此,我们可以添加events.namespace,并相应地处理绑定并关闭单个事件。
有关详细信息,请参阅:https://api.jquery.com/event.namespace/
因此,相同的提交可以重写为"submit.abc"
和"submit.def"
,然后.off("submit.abc")
。