让jquery ajaxStop每次只发一次

时间:2013-05-05 04:59:19

标签: ajax jquery

出于某种原因,我的ajaxStop代码现在正在触发两次,我需要将其限制为一次。

$('.submit').bind('click', function(e) {

$("#fileupload").ajaxForm({
        target: '#status'
}).submit();


$(document).ajaxStop(function() {
         var mysrc = $("#status").find('img').attr("src");
         $(".empty:first").removeClass("empty").removeClass("ui-state-default").addClass("ui-state").append('<img src="'+mysrc+'" width="45" height="60" class="expand"/>');
     });     

});

2 个答案:

答案 0 :(得分:10)

尝试使用.one(),例如:

$(document).one("ajaxStop", function() {
   var mysrc = $("#status").find('img').attr("src");
   $(".empty:first").removeClass("empty").removeClass("ui-state-default").addClass("ui-state").append('<img src="'+mysrc+'" width="45" height="60" class="expand"/>');
});   

答案 1 :(得分:1)

我正在执行两次。但是,使用.one意味着它只会在FIRST迭代中触发,而不是在完成所有操作之后。这是我最终使用的内容,它似乎可以按预期工作。

var ajaxCount = 0;

$(document).ajaxStop(function () {
    ajaxCount += 1;
    if (ajaxCount == 2) {
        $('.fieldLoading').hide();
        $('.fieldValue').show();
    }
});