Синхронизировать анимации jquery в обратном вызове - PullRequest
0 голосов
/ 13 марта 2011

У меня есть функция runner, которая должна возвращаться, только когда все элементы (также анимации) в вызываемом обратном вызове завершены.

function runner(callback) {
  callback.call();
  return; // only return when callback is finished with everything.
}

Я думал об использовании функции jQuery queue, но не смог заставить ее работать. Возможно ли даже это заархивировать. callback это черный ящик. runner не может знать, что там происходит.

1 Ответ

0 голосов
/ 13 марта 2011

То, что вы действительно хотите, это чтобы callback принял собственный обратный вызов. (Я знаю, что вы сказали, что это черный ящик, но это должен быть другой черный ящик.) Затем, вместо ожидания обратного вызова, вы просто передаете ему продолжение и callback отвечает за присвоение этого продолжение обработчика завершения анимации (или чего бы то ни было). Так что вместо:

doSomeStuff();
runner(callback);
doMoreStuff();

хочешь

doSomeStuff();
callback.call(doMoreStuff);

Вот ответ на связанный вопрос. В более общем смысле, этот шаблон стиль передачи продолжения и является центральным в том, как jQuery обрабатывает вещи.

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