Похоже, функция JQuery Fade-In не вызывается - PullRequest
1 голос
/ 24 февраля 2012

У меня есть вопрос о функции, которую я пишу с помощью Jquery, опубликованной ниже. Первая функция работает отлично. Когда страница загружается, Jquery заставляет sidenav div исчезать через несколько секунд для отображения: нет. Div справа от него будет скользить влево. Изменение фона на красный - это всего лишь некоторое тестирование, однако все работает отлично.

Вторая функция - событие, реагирующее на нажатие ... которое должно вернуть скользящий элемент div в исходное положение. Который это делает. Но затем он должен исчезнуть, div, который исчез в OnpageLoad. Эта часть не работает. Див остается скрытым. Кто-нибудь может мне с этим помочь? Мне просто нужно, чтобы div # sidenav-cont снова стал видимым после того, как другой div вернулся на место.

 $(document).ready(function() {
   $("#sidenav-cont").delay(2000).fadeToggle(3000).queue(function() {
     $(".colleft").show("slow").delay(100).animate({right:'+=350'},2000).queue(function() {
       $(this).css('background-color','red').stop(true, true);
     });
   });
 });


 $(document).ready(function() {
   $("a.open").click(function () {
     $(".colleft").show("slow").animate({left:'+=350'},2000).queue(function() {
       $("#sidenav-cont").fadeToggle(3000);
     });
   });
 });

1 Ответ

0 голосов
/ 24 февраля 2012

Ваши обратные вызовы не вызывают dequeue () или функцию next, предоставляемую в качестве аргумента queue () перед возвратом.Неспособность сделать это эффективно блокирует очередь и объясняет, почему обратный вызов во второй части вашего кода никогда не вызывается.

Try:

$(document).ready(function() {
    $("#sidenav-cont").delay(2000).fadeToggle(3000)
                      .queue(function(next) {
        $(".colleft").show("slow").delay(100).animate({right:'+=350'},2000)
                     .queue(function(next) {
            $(this).css('background-color','red').stop(true, true);
            next();
        });
        next();
    });
});

$(document).ready(function() {
    $("a.open").click(function () {
        $(".colleft").show("slow").animate({left:'+=350'},2000)
                     .queue(function(next) {
           $("#sidenav-cont").fadeToggle(3000);
           next();
        });
    });
});
...