Два варианта:
Использовать обратный вызов
Я знаю, что вы сказали
Я знаю, что могу вызвать обратный вызов load1 в animate () animation1, ноЯ отделил одно от другого, потому что я многократно использую animation1.
... но обратный вызов действительно лучший способ сделать это.В местах, где вам не нужен обратный вызов, просто не передавайте его в animation1
.
Измените animation1
, чтобы принять обратный вызов, который он передает функции animate
, которая принимаетобратный вызов «завершения» запускается, когда анимация завершена:
function animation1(callback) {
// See also my comment on the question regarding `{width(size)}`
element.animate({width: size}, callback);
}
... и тогда ваш щелчок будет передавать ссылку на load1
на animation1
, а не вызывать его напрямую, как это:
function clickHandler() {
animation1(load1);
}
Подробнее о функции завершения см. В animate
документах .
Использование таймера
Если вы скажете animation1
Точно так же, как долго, вы можете использовать setTimeout
, чтобы отложить ваш звонок на load1
:
function animation1(duration) {
// See also my comment on the question regarding `{width(size)}`
element.animate({width: size}, duration);
}
... и тогда ваш клик будет переходить на animation1
и использовать setTimeout
чтобы задержать вызов load
на ту же сумму:
function clickHandler() {
animation1(400);
setTimeout(load1, 400);
}
Из этих двух я определенно выбрал бы обратный вызов, а не setTimeout
, исключая некоторые другие ограничения дизайна.