2012-02-28 10 views
0

私は、一連のタブ内に部分的なビューをロードするMVCアプリケーションを持っています。私はローディングインジケーターとして使用している、絶対的に位置づけられたDIVを持っています。 2つのタブについては、完全に機能します。 3つ目は、即座にコールバック関数を起動し、 "ModalLoading" DIVをフェードアウトしません。JQuery FadeOut()コールバックのタイミング

注: "ModalLoading" div要素が隠されていません。私はすでにそれが消えているので、それが発射していないことを確認するためにそこに余分な "停止"を追加しました。私は困惑している。私はどこにでもこれを引き起こす可能性のあるものを探しました。すべてのタブは全く同じ機能を使用しており、同じ方法で呼び出されます。誰にもアイデアはありますか?

ありがとうございました!私は最終的にこれを考え出した

$("#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

私がやった – Ohgodwhy

+0

)(.stop falseに二番目の引数を変更してみてください。私はその1つを含むいくつかのバリエーションを試しました:$( "#ModalLoading")。show()。fadeOut(250); – dygfloyd

答えて

0

はここでjQueryのコードです。多大な苦痛の後、同じID「ModalLoading」を使って別の部分ビューにdivがあることがわかりました。だから、私がfadeOutを呼んだとき、それは隠された他のインスタンスを見つけました。そのため、fadeOutは即座にコールバックを起動し、私が望むdivをフェードアウトしませんでした。

メンタル注:競合IDのすべての部分のビューを確認してください。特に異なる意見が異なる人々によって開発された場合。

関連する問題