JQuery: загрузка контента не ждет завершения анимации - PullRequest
1 голос
/ 11 декабря 2011
$("#clickme").click(
            function(){
                $(this).slideToggle(1000);
                $(this).load("MYTEXT.txt");
                $(this).slideToggle(1000);
            }   
        )

Я хочу, чтобы новое содержимое моего HTML-элемента отображалось ТОЛЬКО после завершения первой анимации. Что происходит в этом коде, так это то, что он сначала скользит вверх и скользит вниз с новым контентом, но новый контент показывается до того, как будет создан эффект слайда!

Как я могу это исправить?

Ответы [ 4 ]

1 голос
/ 11 декабря 2011
$("#clickme").click( 
            function(){ 
                $(this).slideToggle(1000, function () {
                    $(this).load("MYTEXT.txt", function () {
                        $(this).slideToggle(1000);
                    });
                });     
            }    
        )

Чтобы все происходило после друг друга, вы можете использовать обратные вызовы для запуска кода только после запуска предыдущей функции (что очень полезно для анимации и вызовов AJAX).

0 голосов
/ 11 декабря 2011

попробуйте это:

$("#clickme").click(
            function(){
                $(this).slideToggle(1000).load("MYTEXT.txt").slideToggle(1000);
            }   
        )
0 голосов
/ 11 декабря 2011
$("#clickme").click(function(){
      $(this).slideToggle(1000, function() {
          $(this).load("MYTEXT.txt", function() {
              $(this).slideToggle(1000);
           });
      });
});
0 голосов
/ 11 декабря 2011

Вы должны будете связать их как обратные вызовы

$("#clickme").click(function(){
    $(this).slideToggle(1000, function(){
        $(this).load("MYTEXT.txt", function(){
            $(this).slideToggle(1000);
        });
    });
});
...