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 18:42

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

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

walik 03.05.2011 18:44

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

maximu$$ 03.05.2011 18:50

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

Matre 03.05.2011 18:56

setTimeout(scroll1, 200);

maximu$$ 03.05.2011 19:12

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

subzey 04.05.2011 12:02

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

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

walik 04.05.2011 13:14

Цитата:

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

Цитата:

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

:)

subzey 04.05.2011 14:58

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


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