Они фактически одинаковы, поэтому вы, вероятно, просто используете первое.
Обратные вызовы (вторая версия) предназначены для запуска любого произвольного кода, который не ставится в очередь автоматически.
Это включает и другие методы jQuery, например .css()
, которые, если их нет в обратном вызове, будут выполняться задолго до завершения анимации.
// .animate() is automatically queued
$(selector).animate({ opacity: 1 }).animate({ opacity: 0.5 });
// .css() is not automatically queued, so you'd need a callback
$(selector).animate({ opacity: 1 }, function() {
$(this).css({ opacity: 0.5 });
});
Без обратного вызова...
// Animation starts ----v
$(selector).animate({ opacity: 1 }).css({ opacity: 0.5 });
// ...but .css() runs immediately-------------^
// ...because it isn't automatically added to the queue.