fadeIn срабатывает раньше чем нужно.
есть вот такой код
var fadeSpeed = 200; $("#div").stop().fadeOut(fadeSpeed, function() { $("#div").html('тут вызывается некая функция которая создает текст'); $("#div").fadeIn(fadeSpeed); }); этот код должен плавно гасить див с текстом, потом менять его и плавно снова показывать. Но поскольку получение текста занимает некоторое время, $("#div").fadeIn(fadeSpeed); уже отрабатывает и новый текст появляется резко. я уже и $("#div").fadeIn(fadeSpeed) пихал в ту функцию , все равно не получается заставить его начать работать уже после того как текст сменится. |
а setTimeout не решит проблему?
|
нет, время получения текста непостоянно, поидея надо колбэк что ли делать в функции которая текст получает, хз. так-то вроде обычная синхронная функция с return . хз я вероятно не совсем правильно понимаю что происходит когда вызываются функции.
|
сам себе отвечу.
приходится делать через $.Deferred() var fadeSpeed = 200; var d = $.Deferred(); $("#div").stop().fadeOut(fadeSpeed, function() { $("#div").html('тут вызывается некая функция которая создает текст'); }); d.done(function() {$("#div").fadeIn(fadeSpeed)}); хотя иногда все равно создается впечатление что рановато срабатывает, но судя по всему это кажется. |
а текст аяксом получаете?
|
нет, там просто манипуляции с ним идут кой какие.
|
Часовой пояс GMT +3, время: 05:56. |