5

出于某种原因,我的 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"/>');
     });     

});
4

2 回答 2

16

尝试使用.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"/>');
});   
于 2013-05-05T05:26:58.830 回答
1

我的也执行了两次。然而,使用 .one 意味着它只在第一次迭代时触发,而不是在一切完成之后。这是我最终使用的,它似乎可以按预期工作。

var ajaxCount = 0;

$(document).ajaxStop(function () {
    ajaxCount += 1;
    if (ajaxCount == 2) {
        $('.fieldLoading').hide();
        $('.fieldValue').show();
    }
});
于 2013-08-14T22:48:21.347 回答