Метод effect
не ставится в очередь точно так же, как остальные вызовы animate, но принимает в качестве параметра обратный вызов, который будет запущен после завершения эффекта.Вы можете сделать это вместо:
$('#bunda').animate({
marginTop: '+=200',
marginLeft: '+=150'
}, 1300).animate({
marginTop: '-=50',
marginLeft: '+=100',
'background-color': 'darkred'
}, 1000).effect('shake', {
times: 3,
}, 50, function () {
$('#bunda').animate({
marginTop: '+=300'
}, 500);
});
Пример: http://jsfiddle.net/CCw9U/