Показать сообщение отдельно
  #80 (permalink)  
Старый 26.12.2010, 03:55
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

по-моему, все ждут, что я что-то скажу... (типа шутка)

думаю, я все же понял, что ты хотел сказать dmitriymar

дело в том, что в jQuery две анимации на одном элементе по умолчанию запускаются в очереди: т.е. вторая начинается только после того, как закончиться первая:
<!DOCTYPE HTML>
<html>
  <head>   
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
  </head>
  <body>

<div style="
    position: absolute;
    width: 100px;
    height: 100px;
    background: red;
"></div>

<script type="text/javascript">
    $('div').animate({'left': '500px'}).animate({'left': '0px'});
</script>

  </body>
</html>


потом, во время animate могут обрабатываться клики:
<!DOCTYPE HTML>
<html>
  <head>   
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
  </head>
  <body>

<div style="
    position: absolute;
    width: 100px;
    height: 100px;
    background: red;
"></div>

<script type="text/javascript">
    $('div').animate({'left': '500px'}, 5000).click(function(){ $(this).stop() });
</script>

  </body>
</html>


animate внутри (упрощенно) работает так:
$.fn.animate = function(){
    <добавить действие в очередь>
    setTimeount(function(){
        $(<elements>).<property> += ...;
    }, duration);
}


итого: у нее в первом сообщении 2 таймера - animate'овский (с очередью действий) и свой собственный. Каждый последующий вызов animate просто добавляет в очередь еще одно действие, сразу оно не запускается

кроме того, ты говорил про случай, когда скрипт не успевает обрабатывать события. В таких случаях ОС говорит, что приложение не отвечает, а браузер, предлагает остановить скрипт. Раз браузер умудряется предложить остановить скрипт, значит он с операционной системой этот вопрос как-то решает, значит он обрабатывает какие-то события. Только ты сам не знаешь, как именно ведет себя ОС и браузер в таких случаях, как они пытаются предотвратить такие проблемы. Ты сам об этом говоришь.

ты сказал, что я перекручиваю твои слова? Нет, я специально ничего такого не делал. Повторюсь: ты очень невнятно объясняешь. И не то чтобы я хочу тебя обидеть... просто констатирую факт, или я не прав? Так что, в крайнем случае - я неправильно тебя понял. А вот иронизировал... да, было дело...

p.s. скажи честно, ты умеешь признавать свои ошибки?

Последний раз редактировалось x-yuri, 26.12.2010 в 03:58.
Ответить с цитированием