Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.09.2012, 23:23
Кандидат Javascript-наук
Отправить личное сообщение для mitiya Посмотреть профиль Найти все сообщения от mitiya
 
Регистрация: 13.01.2011
Сообщений: 114

fadeIn срабатывает раньше чем нужно.
есть вот такой код

var fadeSpeed = 200;

$("#div").stop().fadeOut(fadeSpeed, function() {
		$("#div").html('тут вызывается некая функция которая создает текст');
		$("#div").fadeIn(fadeSpeed);
	});


этот код должен плавно гасить див с текстом, потом менять его и плавно снова показывать.
Но поскольку получение текста занимает некоторое время, $("#div").fadeIn(fadeSpeed); уже отрабатывает и новый текст появляется резко.

я уже и $("#div").fadeIn(fadeSpeed) пихал в ту функцию , все равно не получается заставить его начать работать уже после того как текст сменится.
Ответить с цитированием
  #2 (permalink)  
Старый 11.09.2012, 16:52
Кандидат Javascript-наук
Отправить личное сообщение для shaltay Посмотреть профиль Найти все сообщения от shaltay
 
Регистрация: 28.02.2011
Сообщений: 134

а setTimeout не решит проблему?
Ответить с цитированием
  #3 (permalink)  
Старый 11.09.2012, 17:18
Кандидат Javascript-наук
Отправить личное сообщение для mitiya Посмотреть профиль Найти все сообщения от mitiya
 
Регистрация: 13.01.2011
Сообщений: 114

нет, время получения текста непостоянно, поидея надо колбэк что ли делать в функции которая текст получает, хз. так-то вроде обычная синхронная функция с return . хз я вероятно не совсем правильно понимаю что происходит когда вызываются функции.
Ответить с цитированием
  #4 (permalink)  
Старый 11.09.2012, 20:30
Кандидат Javascript-наук
Отправить личное сообщение для mitiya Посмотреть профиль Найти все сообщения от mitiya
 
Регистрация: 13.01.2011
Сообщений: 114

сам себе отвечу.
приходится делать через $.Deferred()

var fadeSpeed = 200;
var d = $.Deferred();

$("#div").stop().fadeOut(fadeSpeed, function() {
		$("#div").html('тут вызывается некая функция которая создает текст');
	});
d.done(function() {$("#div").fadeIn(fadeSpeed)});


хотя иногда все равно создается впечатление что рановато срабатывает, но судя по всему это кажется.
Ответить с цитированием
  #5 (permalink)  
Старый 11.09.2012, 20:33
Кандидат Javascript-наук
Отправить личное сообщение для shaltay Посмотреть профиль Найти все сообщения от shaltay
 
Регистрация: 28.02.2011
Сообщений: 134

а текст аяксом получаете?
Ответить с цитированием
  #6 (permalink)  
Старый 12.09.2012, 02:47
Кандидат Javascript-наук
Отправить личное сообщение для mitiya Посмотреть профиль Найти все сообщения от mitiya
 
Регистрация: 13.01.2011
Сообщений: 114

нет, там просто манипуляции с ним идут кой какие.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
событие onload срабатывает раньше valent1224 Events/DOM/Window 16 28.02.2011 23:55