2012-02-28 75 views
0

我有一个MVC应用程序,我在一系列选项卡中加载部分视图。我有一个绝对定位的DIV,我用它作为加载指标。对于其中两个选项卡,它可以很好地工作。对于第三个,它立即启动回调函数,而不是淡出“ModalLoading”DIV。JQuery FadeOut()回调时间

注意:“ModalLoading”div未隐藏。我甚至在那里增加了额外的“停止”,以确保它没有开火,因为它已经消失。我很困惑。我到处搜索可能会导致此问题的东西。所有的选项卡都使用完全相同的功能,并以相同的方式调用。有没有人有任何想法?

感谢您的帮助!

这里是jQuery代码:

$("#AssessmentNav ul li").click(function() { 
     $("#AssessmentNav ul li").removeClass("active"); 
     $(this).addClass("active"); 
     LoadView($(this).data("view")); 
    }); 

function LoadView(view) { 
    $("#ModalLoading").fadeIn(250); 
    $("#AssessmentContent").html('').load(RA.BASE_URL + "Assessment/" + view + "/" + AssessmentId, function() { 
     $("#ModalLoading").stop(false, true).fadeOut(2000, function() { console.log("Ding fries are done!"); }); 
    }); 
} 
+0

尝试在.stop() – Ohgodwhy 2012-02-28 22:04:53

+0

中将第二个参数更改为false。我尝试了几个变体,包括那个和这个:$(“#ModalLoading”)。show()。fadeOut(250); – dygfloyd 2012-02-28 22:16:49

回答

0

我终于想通了这一点。经过很多痛苦之后,我发现不同的局部视图碰巧有一个div,里面有相同的ID“ModalLoading”。所以,当我调用fadeOut时,它发现了隐藏的另一个实例。正因为如此,fadeOut立即开始回调,并没有淡出我想要的div。

心理注意:检查冲突ID的所有部分视图。特别是当不同的观点由不同的人开发时。