Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: jQuery - ширина и высота только что созданного элемента

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
lamozavrik
Отправлено: 12 Марта, 2012 - 18:10:49
Post Id



Частый гость


Покинул форум
Сообщений всего: 161
Дата рег-ции: Дек. 2011  


Помог: 4 раз(а)




Привет уважаемые форумчане )) Такая вот проблемка у меня возникла. Как узнать ширину и высоту только что созданного элемента?

Есть вот такой код:
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. function bigImg(img){
  3.    
  4.     var imgDiv = jQuery('<div class="bigimg"></div>');
  5.     var bigImg = jQuery('<img src="' + img + '" />');
  6.    
  7.     jQuery('body').append(imgDiv);
  8.     imgDiv.append(bigImg);
  9.     var imgH = bigImg.height();
  10.     var imgW = bigImg.width();
  11.     alert(imgH);
  12.  
  13. }
  14.  


Так вот при первом вызове в алерте у меня приходит 0, а если обновить страницу и вызвать функцию еще раз, то уже в алерте нормально приходит высота объекта. Но если сбросить кеш браузера (Ctrl + F5), то опять тоже самое ((( Как мне узнать сразу ширину и высоту динамически созданного элемента? Заранее спасибо )


-----
Ударим крепким сном по мукам совести!
 
 Top
IllusionMH
Отправлено: 12 Марта, 2012 - 19:01:23
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




lamozavrik, может проблема в том, что изображение подгружается асинхронно, и пока оно не загружено контейнер имеет нулевой размер.
Нужно навесить обработчик события onload и уже там выводить
CODE (javascript):
скопировать код в буфер обмена
  1. function bigImg(img) {
  2.     var imgDiv = jQuery('<div class="bigimg"></div>');
  3.     var bigImg = jQuery('<img src="' + img + '" />').on("load", function() {
  4.         var imgH = bigImg.height();
  5.         var imgW = bigImg.width();
  6.  
  7.         alert(imgW + "x" + imgH);
  8.     });
  9.  
  10.     jQuery('body').append(imgDiv);
  11.     imgDiv.append(bigImg);
  12. }

Когда происходит обновление(из кеша) изображение уже не загружается, а сразу вставляется из кеша

upd.переделал функцию под JQ

(Отредактировано автором: 12 Марта, 2012 - 19:12:11)

 
 Top
lamozavrik
Отправлено: 12 Марта, 2012 - 19:16:53
Post Id



Частый гость


Покинул форум
Сообщений всего: 161
Дата рег-ции: Дек. 2011  


Помог: 4 раз(а)




IllusionMH, блин, спасибо огромное )) А я почему то на более старой версии JQ делал и даже не знал про метод on() )))


-----
Ударим крепким сном по мукам совести!
 
 Top
IllusionMH
Отправлено: 12 Марта, 2012 - 19:32:33
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




lamozavrik, методы on/off появились в версии 1.7.
Модно спокойно использовать просто
CODE (javascript):
скопировать код в буфер обмена
  1. var bigImg = jQuery('<img src="' + img + '" />').load(function() {


upd. Все остальные методы назначения обработчиков событий, начиная с версии 1.7, в конечном итоге сводятся к вызову функции on()

(Отредактировано автором: 12 Марта, 2012 - 19:41:17)

 
 Top
lamozavrik
Отправлено: 12 Марта, 2012 - 20:07:24
Post Id



Частый гость


Покинул форум
Сообщений всего: 161
Дата рег-ции: Дек. 2011  


Помог: 4 раз(а)




IllusionMH, еще раз спасибо )) Просто в JS не силен )) Буду учится дальше ))


-----
Ударим крепким сном по мукам совести!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB