Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.01.2012, 03:24
Новичок на форуме
Отправить личное сообщение для AterDeus Посмотреть профиль Найти все сообщения от AterDeus
 
Регистрация: 26.01.2012
Сообщений: 4

Не срабатывают 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(), но все равно иногда не срабатывает. В чем может быть проблема?

Последний раз редактировалось AterDeus, 26.01.2012 в 16:03.
Ответить с цитированием
  #2 (permalink)  
Старый 26.01.2012, 15:19
Лаборант :-)
Отправить личное сообщение для Pavel M. Посмотреть профиль Найти все сообщения от Pavel M.
 
Регистрация: 08.11.2011
Сообщений: 806

я так понял, что вы динамически создаете <div id="galery_wrapper">...
вместе с картинками, и только после этого начинается загрузка картинок

значит, если картинки могут быть любой высоты надо дожидаться загрузки картинок, а только потом определять высоту #galery_wrapper
Ответить с цитированием
  #3 (permalink)  
Старый 26.01.2012, 15:25
Новичок на форуме
Отправить личное сообщение для AterDeus Посмотреть профиль Найти все сообщения от AterDeus
 
Регистрация: 26.01.2012
Сообщений: 4

Да, именно. Поэтому я и пытался запускать код с определение высоты блока с window.onload, который, по идее выполняется после загрузки всех элементов страницы, но почему-то этого не происходит.
Т.е. функция вызова галереи выглядит так:
{
addFotos();
windows.onload = myFunction(); или $(myFunction());
}

Последний раз редактировалось AterDeus, 26.01.2012 в 16:01.
Ответить с цитированием
  #4 (permalink)  
Старый 26.01.2012, 15:46
Лаборант :-)
Отправить личное сообщение для Pavel M. Посмотреть профиль Найти все сообщения от Pavel M.
 
Регистрация: 08.11.2011
Сообщений: 806

если бы картинки были в коде страницы, то да, они загрузились бы до window.onload, а я так понимаю, что addFotos() элементы img создает
Ответить с цитированием
  #5 (permalink)  
Старый 26.01.2012, 15:58
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #6 (permalink)  
Старый 26.01.2012, 16:00
Новичок на форуме
Отправить личное сообщение для AterDeus Посмотреть профиль Найти все сообщения от AterDeus
 
Регистрация: 26.01.2012
Сообщений: 4

Pavel M.,Да, и что можно сделать?
Я делал и с помощью
setTimeout(myFunction(),20) И все равно иногда высота не верно бралась, а я планирую в будущем больше картинок добавить в галереи...
Есть какой-то способ запускать код после динамически загрузки элементов?

trikadin, простите, все исправил.

Последний раз редактировалось AterDeus, 26.01.2012 в 16:05.
Ответить с цитированием
  #7 (permalink)  
Старый 26.01.2012, 16:56
Лаборант :-)
Отправить личное сообщение для Pavel M. Посмотреть профиль Найти все сообщения от Pavel M.
 
Регистрация: 08.11.2011
Сообщений: 806

> Есть какой-то способ запускать код после динамически загрузки элементов?

есть разные способы

а если картинки будут минуту грузиться, то не будете начинать анимацию ?
Ответить с цитированием
  #8 (permalink)  
Старый 30.01.2012, 17:24
Новичок на форуме
Отправить личное сообщение для AterDeus Посмотреть профиль Найти все сообщения от AterDeus
 
Регистрация: 26.01.2012
Сообщений: 4

Решилось все просто )))
Нужно было просто всем IMG указать высоту. Простите, что потратил время ))
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не срабатывает обработчик window.onload. Alex82 Events/DOM/Window 16 22.02.2013 21:06
Не срабатывают стили romantik2011 (X)HTML/CSS 15 06.09.2011 09:55
Window.OnLoad проблема brand Internet Explorer 1 24.07.2011 03:06
Выполнение JS-кода после загрузки страницы (НЕ window.onload!) fox Events/DOM/Window 1 14.02.2011 00:59
Как совместить window.onload от 2 скриптов? reserved100 Events/DOM/Window 8 09.07.2010 17:42