Заставить функцию Jquery ждать завершения анимации ⇐ Jquery
-
Anonymous
Заставить функцию Jquery ждать завершения анимации
Я знаю, что об этом много спрашивали, но я до сих пор не могу найти ответ. У меня есть два отдельных элемента div в заголовке, и при нажатии на один из них в основной части моей страницы появляется некоторый контент. Я пытаюсь сделать так, чтобы, если один из них уже нажат, новый должен был ждать, пока старый исчезнет, прежде чем он исчезнет. Моя проблема в том, что он не ждет, пока старый исчезнет, он исчезает правильно прочь. Я не включил функции для страницы_2, но они идентичны, только с заменой соответствующих идентификаторов и переменных.
var about_me_clicked = false; вар page_2_clicked = ложь; $(документ).ready(функция() { $('#About_me').click(about_me_clicked_func); $('#Page_2').click(page_2_clicked_func); вар about_me_clicked_func = function() { если(page_2_clicked){ $.when(toggle_page_2()).done(toggle_about_me()); page_2_clicked = !page_2_clicked; } еще toggle_about_me(); about_me_clicked = !about_me_clicked; } вар toggle_about_me = function() { //выполняем форматирование.... если (!about_me_clicked) { return $('#About_me_main').fadeIn('slow').promise(); } иначе верните $('#About_me_main').fadeOut('slow').promise(); Я пробовал использовать только .done() без $.when(), но это тоже не сработало. Я также пытался использовать функцию обратного вызова/завершения для FadeIn/FadeOut, но я не могу этого сделать, потому что есть случай, когда ни один из них не был нажат (при первой загрузке страницы), поэтому я не смог передать другую функцию. Буду очень признателен за любую помощь, я застрял на этом несколько дней!
Я знаю, что об этом много спрашивали, но я до сих пор не могу найти ответ. У меня есть два отдельных элемента div в заголовке, и при нажатии на один из них в основной части моей страницы появляется некоторый контент. Я пытаюсь сделать так, чтобы, если один из них уже нажат, новый должен был ждать, пока старый исчезнет, прежде чем он исчезнет. Моя проблема в том, что он не ждет, пока старый исчезнет, он исчезает правильно прочь. Я не включил функции для страницы_2, но они идентичны, только с заменой соответствующих идентификаторов и переменных.
var about_me_clicked = false; вар page_2_clicked = ложь; $(документ).ready(функция() { $('#About_me').click(about_me_clicked_func); $('#Page_2').click(page_2_clicked_func); вар about_me_clicked_func = function() { если(page_2_clicked){ $.when(toggle_page_2()).done(toggle_about_me()); page_2_clicked = !page_2_clicked; } еще toggle_about_me(); about_me_clicked = !about_me_clicked; } вар toggle_about_me = function() { //выполняем форматирование.... если (!about_me_clicked) { return $('#About_me_main').fadeIn('slow').promise(); } иначе верните $('#About_me_main').fadeOut('slow').promise(); Я пробовал использовать только .done() без $.when(), но это тоже не сработало. Я также пытался использовать функцию обратного вызова/завершения для FadeIn/FadeOut, но я не могу этого сделать, потому что есть случай, когда ни один из них не был нажат (при первой загрузке страницы), поэтому я не смог передать другую функцию. Буду очень признателен за любую помощь, я застрял на этом несколько дней!
Мобильная версия