Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.04.2012, 17:35
Аспирант
Отправить личное сообщение для zebra741258963 Посмотреть профиль Найти все сообщения от zebra741258963
 
Регистрация: 13.12.2011
Сообщений: 67

Когда происходит $(document).ready ?
С самого начала изучения jQuery был приучен что код должен прописываться внутри $(document).ready

Я считал что событие redy происходит когда страница ПОЛНОСТЬЮ загружена. Однако в первой же своей работе где применялся jQuery я сталкнулся с такой особенностью - у меня там было 9 картинок которые должны были зуммироваться, и по этому я должен был в самом начале отцентрировать их в зависимости от их ширины. Первые 5-6 картинок всегда нормально ставили позицию, а последние картинки при первом заходе на сайт всегда центрировались неправильно. Однако если пользователь нажимал F5 или заходил на сайт повторно - то с картинками уже всё было нормально. Тоесть если картинки есть в кеше браузера, то проблем нету, а если они грузятся впервые, то такое ощущение что $(document).ready срабатывает раньше чем загружаются все картинки!

В тот раз я не стал глубоко разбираться, ведь картинок всего 9, и просто вписал <img MyWidth=### MyHeight=### src=...> (всё равно при зумировании width и height поменяют свои значения и их надо будет сбрасывать на начальные...

Прошло время, и тут мне звонит друг и спрашивает - как получить ширину картинки?
Я ему говорю - $(...).width
Он отвечает что так и делает, но получает - 0 (ноль)
Я говорю что такое может быть если ещё не загрузилась
Но он говорит что у него код выполяется в $(document).ready
И тут я вспомнил что у меня такая проблема уже была и предложил выполнить это же действие в $('#Kartinka').load
И он получил её размер...

Вот сейчас не понимаю, значит $(document).ready - это НЕ означает что все элементы документа загрузились?
Ответить с цитированием
  #2 (permalink)  
Старый 07.04.2012, 17:42
Профессор
Отправить личное сообщение для zebra Посмотреть профиль Найти все сообщения от zebra
 
Регистрация: 14.09.2011
Сообщений: 523

испольщуйте window.onload
Ответить с цитированием
  #3 (permalink)  
Старый 07.04.2012, 17:48
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

$.ready -- загрузился весь HTML-код страницы.
Событие load у window -- загрузилась вся страница, включая внешние ресурсы.
Ответить с цитированием
  #4 (permalink)  
Старый 07.04.2012, 17:49
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

zebra741258963,
zebra,
у вас тут гнездо походу.
Ответить с цитированием
  #5 (permalink)  
Старый 07.04.2012, 18:04
Профессор
Отправить личное сообщение для zebra Посмотреть профиль Найти все сообщения от zebra
 
Регистрация: 14.09.2011
Сообщений: 523

Не, рейтинг набиваю
Ответить с цитированием
  #6 (permalink)  
Старый 07.04.2012, 21:40
Аватар для T-sh
Профессор
Отправить личное сообщение для T-sh Посмотреть профиль Найти все сообщения от T-sh
 
Регистрация: 04.12.2009
Сообщений: 579

что вы тут городите??7

$(document).ready — событие полной загрузки DOM документа (т.е. когда получены все элементы и объекты). Простыми словами, когда браузер узнает, что получил всю разметку страницы — тогда сработает.

Т.е. не ждёт, пока загрузятся все изображения и прочее, а стартует сразу, как получает разметку, а потом уже идёт догрузка содержимого
__________________
С моих слов записано верно.
Ответить с цитированием
  #7 (permalink)  
Старый 07.04.2012, 22:43
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

T-sh,
объясните, пожалуйста, как предложение
Сообщение от Kolyaj
$.ready -- загрузился весь HTML-код страницы.
противоречит вашему сообщению?
Ответить с цитированием
  #8 (permalink)  
Старый 07.04.2012, 22:53
Аватар для T-sh
Профессор
Отправить личное сообщение для T-sh Посмотреть профиль Найти все сообщения от T-sh
 
Регистрация: 04.12.2009
Сообщений: 579

Сообщение от Kolyaj Посмотреть сообщение
T-sh,
объясните, пожалуйста, как предложение
противоречит вашему сообщению?
эт я на сабж ответил, т.е на:

Цитата:
С самого начала изучения jQuery был приучен что код должен прописываться внутри $(document).ready
Я считал что событие redy происходит когда страница ПОЛНОСТЬЮ загружена. Однако в первой же своей работе где применялся jQuery я сталкнулся с такой особенностью - у меня там было 9 картинок которые должны были зуммироваться,....
а так да.. можно сказать и html код но всё-таки работа идём с DOM
__________________
С моих слов записано верно.
Ответить с цитированием
  #9 (permalink)  
Старый 07.04.2012, 23:24
Аспирант
Отправить личное сообщение для zebra741258963 Посмотреть профиль Найти все сообщения от zebra741258963
 
Регистрация: 13.12.2011
Сообщений: 67

Всем большое спаисбо.
Может теоретически спрошу - а для какого-то объекта ещё .redy имеет смысл использовать? (про .load понятно что для картинок, может ещё для флеша или музыки) А .redy вроде не придумал где может ещё использоваться.

И прошу прощения у пользователя zebra за схожесть ников, хотя свой уже несколько использую в сети, но из-за уважения готов сменить на этом сайте свой ник чтобы он не вводил в заблуждение пользователей (если есть такая техническая возможность у админов)
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипт счетчика тормозит когда вделаю страницу активной denisOgr jQuery 1 30.10.2011 16:15
Как работает оператор new когда функция-конструктор что-то возвращает ? olek Общие вопросы Javascript 2 06.03.2011 12:17
не работает конструктор в lightbox когда указываешь переменную с точкой Igorpurgen Общие вопросы Javascript 9 27.10.2010 18:14
Как происходит утечка памяти в даном случае? Yazla Общие вопросы Javascript 2 09.11.2009 13:02