jQuery каждый () и "в случае успеха"? - PullRequest
3 голосов
/ 05 августа 2009

Я использую $().each(), чтобы перебрать некоторые элементы. Я хочу убедиться, что действие, которое следует после этого фрагмента сценария, выполняется только после завершения each().

Пример:

$('something').each(function() {
  // do stuff to items
});

// do something to one of these items
$('item').etc

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

Так ... это возможно? Или код под функцией each () всегда выполняется после предыдущего кода. Я знаю это, например Вызовы AJAX имеют функцию «success», которая заставляет код выполняться только после завершения родительского действия. Это необходимо / возможно здесь? Я пробовал что-то вроде следующего, но это не работает:

$('something').each(function() {
  // do stuff to items
}, function () {
  // do stuff when the each() part has completed
});

1 Ответ

6 голосов
/ 05 августа 2009

each не является асинхронным, поэтому все, что следует после , должно выполняться позже, и обратная связь не поддерживается. Тем не менее, это будет зависеть от того, что делает «делать вещи с элементами», потому что некоторые из них могут быть асинхронными - например, анимация, скольжение вверх / вниз и т. Д. - и эти методы поддерживают обратные вызовы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...