В теория , это - трата ресурсов для объявления строки в цикле. В практика , однако, оба из отрывков, которые Вы представили, скомпилируют вниз в тот же код (объявление вне цикла).
Так, если Ваш компилятор делает какой-либо объем оптимизации, нет никакого различия.
$('.tooltip').animate({ opacity: 1, top: "-10px" }, 'slow');
Однако, похоже, это не работает на display: none
элементы (как fadeIn
). Итак, вам может потребоваться указать это заранее:
$('.tooltip').css('display', 'block');
$('.tooltip').animate({ opacity: 0 }, 0);
Другой способ делать одновременные анимации, если вы хотите вызывать их по отдельности (например, из другого кода), - это использовать очередь
. Опять же, как и в случае с ответом Тинистера, вам придется использовать для этого animate, а не fadeIn:
$('.tooltip').css('opacity', 0);
$('.tooltip').show();
...
$('.tooltip').animate({opacity: 1}, {queue: false, duration: 'slow'});
$('.tooltip').animate({ top: "-10px" }, 'slow');