Jquery 多个.click()绑定。如何强制最后执行一个绑定?

Jquery 多个.click()绑定。如何强制最后执行一个绑定?,jquery,Jquery,我有一个javascript链接,用作弹出窗口上的按钮: <a href="#" class="submit-action close-modal">Submit</a> 当前,当我单击此按钮时,关闭模式绑定似乎首先执行,并在提交表单之前关闭模式。因此,弹出窗口关闭而不执行提交。有没有一种方法可以强制先执行“提交操作”绑定而不合并这两个绑定。单击()绑定?简单地将一个绑定置于另一个绑定之上会导致它首先执行: 简单地把一个放在另一个上面会导致它首先发生: 它们按照绑定

我有一个javascript链接,用作弹出窗口上的按钮:

<a href="#" class="submit-action close-modal">Submit</a>

当前,当我单击此按钮时,关闭模式绑定似乎首先执行,并在提交表单之前关闭模式。因此,弹出窗口关闭而不执行提交。有没有一种方法可以强制先执行“提交操作”绑定而不合并这两个绑定。单击()绑定?

简单地将一个绑定置于另一个绑定之上会导致它首先执行:


简单地把一个放在另一个上面会导致它首先发生:


它们按照绑定的顺序触发,因此在绑定submit操作后绑定close模式,它应该按照您想要的顺序进行

小提琴1:

小提琴2:

从JQuery(我的重点):

默认情况下,大多数事件从原始事件目标冒泡到 文档元素。在过程中的每个元素上,jQuery都调用 匹配已附加的事件处理程序。处理程序可以防止 防止事件在文档树上进一步冒泡(从而防止 通过调用 event.stopPropagation()。当前服务器上附加的任何其他处理程序 元素将运行。要防止这种情况,请致电 event.stopImmediatePropagation()。(绑定到元素的事件处理程序 按绑定顺序调用。


它们按照绑定的顺序触发,因此在绑定submit操作后绑定close模式,它应该按照您想要的顺序进行

小提琴1:

小提琴2:

从JQuery(我的重点):

默认情况下,大多数事件从原始事件目标冒泡到 文档元素。在过程中的每个元素上,jQuery都调用 匹配已附加的事件处理程序。处理程序可以防止 防止事件在文档树上进一步冒泡(从而防止 通过调用 event.stopPropagation()。当前服务器上附加的任何其他处理程序 元素将运行。要防止这种情况,请致电 event.stopImmediatePropagation()。(绑定到元素的事件处理程序 按绑定顺序调用。


如果您想在提交完成后立即关闭模式。在ajax的“完成”事件上触发关闭模式的操作

如果您想在提交完成后立即关闭模式。在ajax的“完成”事件上触发关闭模式的操作

你不能。事件处理程序不会以可靠的顺序跨浏览器启动。确保一件事一件接一件发生的唯一方法是利用您正在使用的任何第三方库为该处理程序提供的回调。如果他们没有在回调中构建,那么你就无能为力(除了找到一个设计良好的替代方案)。可能的重复你做不到。事件处理程序不会以可靠的顺序跨浏览器启动。确保一件事一件接一件发生的唯一方法是利用您正在使用的任何第三方库为该处理程序提供的回调。如果他们没有构建回调,那么你就无能为力(除了找到一个实际上设计得很好的替代方案)。可能重复我切换了顺序,我将两者绑定在一起,效果非常好。谢谢。我把订单换了,我把两个都绑好了,效果很好。谢谢
$(".submit-action").click(function() ($("#someForm").attr("action", "someURL"); 
$("#someForm").submit();

this.close = function () {
    $("#modal").hide();
    $.unblockUI();
};

$(".close-modal").click(function()(this.close);
$(document).on('click', '.submit-action', function () {
    alert('submit-action click');
});


$(document).on('click', '.close-modal', function () {
    alert('close-modal click');
});