Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.01.2009, 15:28
Новичок на форуме
Отправить личное сообщение для kotmatroskin Посмотреть профиль Найти все сообщения от kotmatroskin
 
Регистрация: 16.01.2009
Сообщений: 6

Синхронность выполнения анимации и append
Суть такова.
Есть HTML:
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="test.js"></script>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div id="full_view">
Goodbye world!
</div>
<a href="#" class="rel">Change</a>
</body></html>

Есть скртип:
$(document).ready(function() {  
  $("a.rel").bind("click", function() {
  $("#full_view").fadeOut(1000);
  $("#full_view").append("Hello world!");
  $("#full_view").fadeIn(1000);  
  return false;});         
});

По идее при клике на ссылку с class="rel" div с id full_view сначала медленно исчезнет, потом в него добавится Hello world!, а потом только он появится. На деле всё не так - Hello world добавляется сразу после нажатия, а потом уже с ним идёт исчезновение и появление.
Как так?
Пробовал уже и в fadeOut приписывать callback функцию и в ней добавлять текст, а потом проявлять - то же самое получается.
Ответить с цитированием
  #2 (permalink)  
Старый 16.01.2009, 15:36
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Анимация асинхронная вещь.

Сообщение от kotmatroskin
Пробовал уже и в fadeOut приписывать callback функцию и в ней добавлять текст, а потом проявлять - то же самое получается.
Так должно работать.
Ответить с цитированием
  #3 (permalink)  
Старый 19.01.2009, 07:05
Новичок на форуме
Отправить личное сообщение для kotmatroskin Посмотреть профиль Найти все сообщения от kotmatroskin
 
Регистрация: 16.01.2009
Сообщений: 6

Ну ладно, допустим. А как тогда заставить работать асинхронно?
Ответить с цитированием
  #4 (permalink)  
Старый 19.01.2009, 10:55
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

а если просто по таймауту (window.setTimeout()) рисовть Hello world?
Если не ошибаюсь, временные величины у вас все заданы.
Ответить с цитированием
  #5 (permalink)  
Старый 19.01.2009, 11:36
Новичок на форуме
Отправить личное сообщение для kotmatroskin Посмотреть профиль Найти все сообщения от kotmatroskin
 
Регистрация: 16.01.2009
Сообщений: 6

Это, конечно, вариант, но какой то корявый.
Хотелось бы чтоб всё изящно было и просто, без всяких таймаутов и прочего. Но видимо придётся с ним делать.
Ответить с цитированием
  #6 (permalink)  
Старый 19.01.2009, 11:38
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

Сообщение от kotmatroskin Посмотреть сообщение
Это, конечно, вариант, но какой то корявый.
Хотелось бы чтоб всё изящно было и просто, без всяких таймаутов и прочего. Но видимо придётся с ним делать.
Сколько раз мне хотелось, чтоб было красиво, не через таймаут.
Ничего, быстро привыкаешь - на JS периодически приходится пользоваться timeout'ом. =)
Ответить с цитированием
  #7 (permalink)  
Старый 19.01.2009, 12:02
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

А что некрасивого в timeout?
Ответить с цитированием
  #8 (permalink)  
Старый 19.01.2009, 16:41
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Сообщение от Kolyaj Посмотреть сообщение
А что некрасивого в timeout?
Это же не метод jQuery!!!!!1111111одинод
Ответить с цитированием
  #9 (permalink)  
Старый 20.01.2009, 10:22
Новичок на форуме
Отправить личное сообщение для kotmatroskin Посмотреть профиль Найти все сообщения от kotmatroskin
 
Регистрация: 16.01.2009
Сообщений: 6

Ясно всё. Всем спасибо за оперативность и помощь!
Ответить с цитированием
  #10 (permalink)  
Старый 20.01.2009, 10:24
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Octane
Это же не метод jQuery
Надо просто сделать так
jQuery.setTimeout = setTimeout;
Такой timeout рулит обычного как тузик грелку
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
разное время выполнения операции ropowek Events/DOM/Window 2 08.10.2008 13:27