使用$(“body”)添加ajaxStart和ajaxStop。on()

时间:2013-11-26 17:26:53

标签: javascript jquery

我正试图在ajax调用正在进行时取消提交表单的能力(这是一个很长的查询,我不希望它在最初制作时再次提交。)但我似乎不正确地附上它。

$(function(){


    $("body").on("click", "#process", function(){

        submit_form();

    });



    $("body").on("ajaxStart", "*", function(){

        $("body").off("click", "#process", submit_form);

        alert("test");
        var div = $("<div>", {
                id: "loading",
                html: "Working"
            }).prependTo("body");

    });


    $("body").on("ajaxStop", "*", function(){
        alert("done");
        $("#loading").remove();

    });

});

我没有看到div被附加或警报被触发。我觉得*语句中的on()选择器可能存在问题。我不知道。我尝试将ajaxStart与on相关联,以便可以删除动态添加的$("#loading")

1 个答案:

答案 0 :(得分:0)

我会更多地设置变量以允许/禁止AJAX调用:

var processing = false;

$('form').on('submit', function(e){

    e.preventDefault();

    if(processing === false){

        processing = true;

        // allow AJAX here
        $.ajax({
            url: 'sample.com/process',
            type: 'POST',
            complete: function(){

                processing = false;

            }
        });
    }

});