Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Callback у $.each() (https://javascript.ru/forum/jquery/30057-callback-u-%24-each.html)

shilinpavel 22.07.2012 20:19

Callback у $.each()
 
Подскажите как, к примеру, выполнить alert('done') после того как $.each() закончит перебор массива?

Deff 22.07.2012 20:21

$.each() {
//Тут что- то
alert('done')
}

cmd 22.07.2012 20:32

А разве так не пойдет?
$.each() {
//Тут что- то
}
alert('done');

Deff 22.07.2012 20:40

cmd,
Ксать да - я не прав - поспешил

shilinpavel 22.07.2012 23:57

Цитата:

Сообщение от cmd (Сообщение 190747)
А разве так не пойдет?
$.each() {
//Тут что- то
}
alert('done');

тогда each выполняется параллельно с alert()

Deff 22.07.2012 23:59

shilinpavel,
:blink: Это если ток у Вас ява-скрипт параллельный процессор - тады да
*У Вас скольки ядерный ?
Если перебор массива с анимацией - вставляете allert в последний анимационный сallback
Выложите Ваш код для $.each() {

shilinpavel 23.07.2012 00:44

<div id="one"></div>

array = ['1','2','3','4'];
$.each(array,(function(i)
{
$('#one').append('<p>'+this[i]+'</p>')
})

После выполнения нужно вывести $('#one').height(), у меня она всегда равна нулю, если вывожу через setTimeout, то все ок

devote 23.07.2012 00:58

не знаю, у меня норм выводит число 124
<div id="one"></div>
<script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script>
<script>
var array = ['1','2','3','4'];
$.each(array, function(i) {
$('#one').append('<p>'+this+'</p>')
});
alert($('#one').height()); // 124
</script>
воможно у вас элемент #one скрыт, где то в стилях.

cmd 23.07.2012 01:05

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<script>
alert('start!');
var myarray = ['0','1','2','3'];
$.each(myarray, function(i) {
  alert(i);
});
alert('done');
</script>
</body>
</html>

Жмякните "Запустить". Если у Вас в цикле нет анимации или ajax, то callback не к чему.

shilinpavel 23.07.2012 01:07

вроде не скрыт, может у меня что то с библиотекой, она у меня ошибку выдает когда в crome открыт bug


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