Не срабатывают 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, время: 22:11. |