Обычный метод jQuery addClass
не принимает функцию обратного вызова. Он не вернется, пока операция не будет завершена, поэтому вы можете смело поместить код в следующую строку:
$('#move').bind('tap', function () {
$('.page').addClass('slideLeftOut');
$('#wrapper').css("height","300");
});
Однако, поскольку вы используете пользовательский интерфейс jQuery, это немного сложнее. Расширение пользовательского интерфейса jQuery до addClass
не предоставляет аргумент обратного вызова.
Поскольку метод UI addClass
использует внутренне animate
, вы можете использовать расширение jQuery 1.6 $.Deferred
, которое позволяет вам вызывать функции, когда все анимации элемента завершены. Это легко реализовать с помощью promise
:
$('#move').bind('tap', function () {
$('.page').addClass('slideLeftOut').promise().done(function() {;
$('#wrapper').css("height","300");
});
});
См:
Обратите внимание, что это будет выполняться только тогда, когда все анимации завершены, а не только addClass
.
Если вы используете встроенную анимацию браузера, я не верю, что есть какой-либо простой способ узнать, когда анимация закончена. Вам нужно будет использовать setTimeout
для запуска кода через определенный промежуток времени.
См. JsFiddle :
$('.page').addClass('slideLeftOut');
setTimeout(function() {
$('#wrapper').css("height","300");
}, 500);