Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   дождаться выполнения toggle (https://javascript.ru/forum/jquery/17041-dozhdatsya-vypolneniya-toggle.html)

maximu$$ 03.05.2011 17:42

дождаться выполнения toggle
 
привет!
возникла такая проблема:
при клике на элементе выполняется следующее:
$(this).parent().toggleClass('active').children('div').toggle('slow');
scroll1();

так вот функция scroll1 (а там происходит замер высоты\ширины изменившихся после toggle элементов) выполняется до того, как завершится toggle.
как сделать, чтобы scroll1 выполнялась после завершения работы toggle?
p.s. эффект анимации 'slow' важен!

walik 03.05.2011 17:44

Попробуйте так:
$(this).parent().toggleClass('active').children('div').toggle('slow', scroll1);

maximu$$ 03.05.2011 17:50

пробовал.
т.к. дочерних элементов (children('div')) множество, то в данном случае scroll1 выполняется несколько раз.
не подходит...

Matre 03.05.2011 17:56

setTimeout(scroll1, 200);

maximu$$ 03.05.2011 18:12

отлично! помогло!
p.s.: только 600 нужно (т.к. slow = 600)

subzey 04.05.2011 11:02

А почему бы эту функцию не установить как коллбек?
$(this).parent().toggleClass('active').children('div').toggle('slow', scroll1)

Тогда она запустится как только анимация закончится, а не примерно в то же время.

walik 04.05.2011 12:14

Цитата:

Сообщение от subzey
А почему бы эту функцию не установить как коллбек?

Цитата:

Сообщение от maximu$$
пробовал.
т.к. дочерних элементов (children('div')) множество, то в данном случае scroll1 выполняется несколько раз.
не подходит...

:)

subzey 04.05.2011 13:58

Прошу прощения. Невнимателен


Часовой пояс GMT +3, время: 14:38.