【发布时间】:2015-09-28 05:19:57
【问题描述】:
我有 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() 绑定,但根据某些情况,我可能需要取消绑定内部的submit() 绑定仅功能 abc。我怎样才能做到这一点?
注意:在将submit() 绑定到 abc 和 def 内的元素之前,我无法检查条件(if - else) ,因为条件是动态实现的。如果发生这种情况,我不希望函数 abc 内的 submit 块执行。
【问题讨论】:
-
.one将bind和event仅一次。所以你可以使用.on和.off到bind和unbind -
@GuruprasadRao 1> 我需要使用
one()2> 使用off()将取消绑定整个submit事件。 -
@Abhi: 所以,你想从函数“abc”中解绑提交事件,而不是从“def”中解绑?
-
@Abhi,jquery 允许您专门添加事件,例如“submit.abc”和“submit.def”,因此,您可以使用 .off("submit.abc") .它允许对事件进行这种命名空间。
-
@Abhi:签出这个简单的 plunkr:plnkr.co/edit/QIQX5m?p=preview
标签: jquery