Focus 等待JQuery事件结束后执行另一个

Focus 等待JQuery事件结束后执行另一个,focus,jquery,Focus,Jquery,实际上,我有一个表单,在一些输入上有一个JQuery focusOut事件。 但是如果关注的是其中一个输入,并且用户想要提交。在执行submit事件之前,我需要等待focusOut事件的结束 有人知道怎么做吗?使用一对旗子应该不会太难。如果您想在完成某项工作之前推迟表单提交,只需: 当你开始你想等待的事情时,设置一个标志(inProgress或其他什么) 钩住提交事件 如果设置了inProgress标志,则取消提交事件并设置一个标志,表明表单需要提交(submitPending或其他任何内容)

实际上,我有一个表单,在一些输入上有一个JQuery focusOut事件。 但是如果关注的是其中一个输入,并且用户想要提交。在执行submit事件之前,我需要等待focusOut事件的结束


有人知道怎么做吗?

使用一对旗子应该不会太难。如果您想在完成某项工作之前推迟表单提交,只需:

  • 当你开始你想等待的事情时,设置一个标志(
    inProgress
    或其他什么)

  • 钩住提交事件

  • 如果设置了
    inProgress
    标志,则取消提交事件并设置一个标志,表明表单需要提交(
    submitPending
    或其他任何内容)

  • 当另一件事情完成时,清除进程中的
    inProgress
    标志,如果设置了
    submitPending
    ,则提交表单

  • 重要的是你知道事情会完成的。如果您不确定第4个会触发,那么您不想取消第3个中的提交

    例如,假设
    #字段
    是字段,
    #表单
    是表单,它看起来像这样:

    (function() {
        var inProgress = false,
            submitPending = false;
    
        // #2
        $("#theForm").submit(function() {
            if (inProgress) {
                // #3
                submitPending = true;
                return false;
            }
        });
        $("#theField").on("focusOut", function() {
            inProgress = true;
            startThingThatTakesTimeLikeAnimationOrAjax(function() {
                // This is the completion callback of the thing that takes time
    
                // #4
    
                // No longer in progress
                inProgress = false;
    
                // Submit if one is pending
                if (submitPending) {
                    $("#theForm").submit();
                }
            });
        });
    })();
    

    你能展示一些你到目前为止尝试过的代码吗?或者做一个