我在我的应用中有以下全局点击行为
$(document).on("click", ".btnSubmit", function (e) {
e.preventDefault();
$(this).parents("form").submit();
});
现在我有一个一次性的实例,我需要一个模态窗口上的.btnSubmit
按钮才能有不同的行为。我有两个解决方法
但是,我真的更喜欢删除绑定,就像这样
$(document).off("click", ".modal.mywindow .btnSubmit")
不幸的是,这不起作用,我猜是因为选择器与原始".btnSubmit"
有没有办法在不影响同一页面上".btnSubmit"
的其他实例的情况下从此特定选择器取消绑定事件?
答案 0 :(得分:0)
我认为你是正确的,“off”的选择器必须匹配“on”中给出的选项,符合jQuery docs for .off():
要删除特定的委派事件处理程序,请提供选择器 论点。选择器字符串必须与传递给的字符串完全匹配 附加事件处理程序时的.on()。
如果您在“on”中添加了一些小逻辑,在提交之前检查点击的按钮是否将.modal.mywindow作为父级,这会令人满意吗?类似的东西:
$(document).on("click", ".btnSubmit", function (e) {
e.preventDefault();
if($(this).closest(".modal.mywindow").length <= 0) {
$(this).parents("form").submit();
}
});
它类似于您的选项2,但不需要您更改HTML。