让jquery ajaxStop每次只发一次

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

尝试使用.one() ,如:

 $(document).one("ajaxStop", function() { var mysrc = $("#status").find('img').attr("src"); $(".empty:first").removeClass("empty").removeClass("ui-state-default").addClass("ui-state").append(''); }); 

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

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