Не срабатывают window.onload и .ready()
Здравствуйте!
Есть пункты меню, при нажатии на которые скриптом динамически загружаются свои галереи (внутрь блока #galery) и запускается функция myFunction. html-код: <div id="galery"> <div id="galery_wrapper"> <a href="..."><img src="..." /></a> // такого вида картинки подгружаются </div> </div> Скрипт: function myFunction() { $('#galery').css('height','0'); var y = $('#galery_wrapper').height(); $('#galery').animate({'height': y}, 2000); } Проблема в том, что высота #galery_wrapper зависит от загруженных картинок, и если загрузка не произошла, то высота #galery остается равной 0. Я пытался начать вызов функции myFunction с помощью window.onload и .ready(), но все равно иногда не срабатывает. В чем может быть проблема? |
я так понял, что вы динамически создаете <div id="galery_wrapper">...
вместе с картинками, и только после этого начинается загрузка картинок значит, если картинки могут быть любой высоты надо дожидаться загрузки картинок, а только потом определять высоту #galery_wrapper |
Да, именно. Поэтому я и пытался запускать код с определение высоты блока с window.onload, который, по идее выполняется после загрузки всех элементов страницы, но почему-то этого не происходит.
Т.е. функция вызова галереи выглядит так: { addFotos(); windows.onload = myFunction(); или $(myFunction()); } |
если бы картинки были в коде страницы, то да, они загрузились бы до window.onload, а я так понимаю, что addFotos() элементы img создает
|
Пожалуйста, отформатируйте свой код!
Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [js] ... ваш код... [/js] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
Pavel M.,Да, и что можно сделать?
Я делал и с помощью setTimeout(myFunction(),20) И все равно иногда высота не верно бралась, а я планирую в будущем больше картинок добавить в галереи... Есть какой-то способ запускать код после динамически загрузки элементов? trikadin, простите, все исправил. |
> Есть какой-то способ запускать код после динамически загрузки элементов?
есть разные способы а если картинки будут минуту грузиться, то не будете начинать анимацию ? |
Решилось все просто )))
Нужно было просто всем IMG указать высоту. Простите, что потратил время )) |
Часовой пояс GMT +3, время: 15:31. |