Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Ожидание выполнения each() (https://javascript.ru/forum/misc/30863-ozhidanie-vypolneniya-each.html)

chelovek-18 18.08.2012 13:12

Ожидание выполнения each()
 
Подскажите пожалуйста, плз, как должен выглядеть код, часть которого запускается только ПОСЛЕ того как each() переберет все варианты. Допустим:

$(".mydiv").each(function(){
/*-----всякие действия-----*/
});

Куда вставить, например, что-нибудь вроде

mytext += $(".mydiv").text();

При условии что он должен начать выполнять уже после того, как each выполнит все свои действия?..

Спасибо огромное!

Deff 18.08.2012 13:17

chelovek-18,
если у Вас в each нету вызовов ассинхронных функций( к примеру запусков по таймеру или аякс-подгрузки) то ставите следом за each
хотя судя по примеру - Вы хотите скложить весь текстовый набор перебираемых блоков в одну переменную ?

chelovek-18 18.08.2012 13:22

На самом деле там несколько сложнее, я просто привел в качестве простого примера (допустим, в each добавляется какой-то текст в эти блоки, а после его выполнения он должен сложиться в одну переменную... Хотя неправильно, это можно было б сделать и в самом each). Мне тут важен именно порядок выполнения - после выполнения each должен будет запускаться еще один each, но не раньше, чем предыдущий доделает все свои действия...

Deff 18.08.2012 13:25

var mytext='';
$(".mydiv").each(function(){
 /*-----всякие действия-----*/

 mytext += $(this).text();
 });

chelovek-18 18.08.2012 13:29

...У меня в each, в частности, идет добавление элементов массива. Если после этого вывести длину массива, то он выводит "2". Как-то так:

$(".mydiv").each(function(){
/*-----добавление элементов массива-----*/
});
$("#arraylength").text(myarr.length);

А перебирает в процессе элементов под 30 - 40...

melky 18.08.2012 13:33

Цитата:

Сообщение от chelovek-18 (Сообщение 198489)
...У меня в each, в частности, идет добавление элементов массива. Если после этого вывести длину массива, то он выводит "2". Как-то так:

$(".mydiv").each(function(){
/*-----добавление элементов массива-----*/
});
$("#arraylength").text(myarr.length);

А перебирает в процессе элементов под 30 - 40...

а Вы заново элементы ищете, после того, как перебрали элементы?

если да... то запостите сюда или на jsfiddle ; jsbin ЗАПУСКАЕМЫЙ пример

chelovek-18 19.08.2012 01:16

Разобрался, спасибо...


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