JQuery FadeOut () время обратного вызова - PullRequest
0 голосов
/ 29 февраля 2012

У меня есть приложение MVC, где я загружаю частичные представления в виде ряда вкладок.У меня есть абсолютно позиционированный DIV, который я использую в качестве индикатора загрузки.Для двух вкладок это работает отлично.Третий - это мгновенное срабатывание функции обратного вызова, а не исчезновение DIV "ModalLoading".

ПРИМЕЧАНИЕ. Div "ModalLoading" не скрыт.Я даже добавил дополнительный «стоп», чтобы убедиться, что он не стреляет, потому что он уже исчез.Я весьма озадачен.Я искал везде что-то, что могло бы вызвать это.Все вкладки используют одну и ту же функцию и называются одинаково.У кого-нибудь есть какие-либо идеи?

Спасибо за вашу помощь!

Вот код 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!"); });
    });
}

1 Ответ

0 голосов
/ 01 марта 2012

Я в конце концов понял это. После большой боли я обнаружил, что в другом частичном представлении есть элемент div с тем же идентификатором «ModalLoading». Итак, когда я вызвал fadeOut, он обнаружил другой экземпляр, который был скрыт. Из-за этого fadeOut мгновенно запустил функцию обратного вызова и не исчез из нужного мне div.

Ментальное примечание: проверьте все частичные представления на наличие конфликтующих идентификаторов. Особенно, когда разные взгляды разрабатываются разными людьми.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...