Когда происходит $(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 - это НЕ означает что все элементы документа загрузились?
|