Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.09.2012, 19:50   #1
bill
Форумчанин
 
Аватар для bill
 
Регистрация: 26.04.2007
Сообщений: 440
Радость JQuery. Клонирование объекта

Привет!.Есть функция, которая определяет реальный размер картинки. Если в выделенной строке убрать метод clone, то вместо значения 0;0 будет выведено 1152;768, который является реальным размером.
Почему так получается?
Код:
<script>
function getRealImageSize(selector){
		var rwidth=0,rheight=0;	
		var CurImg = $(selector).clone();
		CurImg.removeAttr("width").removeAttr("height").css({ width: "", height: "" });						
		return {'width':CurImg.width(),'height':CurImg.height()};	
}

$(document).ready(function() { 
  realsize=getRealImageSize('#myimg');
  alert(realsize.width+';'+realsize.height)
}); 
</script>

<div style="margin:0;width:100%;position:relative">
	<div style="width: 500px; height:400px;margin: 0px auto;border:1px solid black;position:relative">
		<img src="1.bmp" id="myimg" style="width:500px;position:absolute">
	</div>
</div>
bill вне форума Ответить с цитированием
Старый 12.09.2012, 07:30   #2
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Зависит от браузера (если не ошибаюсь). Клонированный объект не привязан к дом-структуре документа, поэтому скрипт может не считать размеры.

============
лучше такую штуку сделать на чистом js через ф-ии обратного вызова. Что-то вроде такого:
Код:
function getSizes(id,cb) {
  var img = new Image();
  img.onload=function(){
    var sizes={
      w:img.width,
      h:img.height
    };
    cb(sizes);
  };
  img.src=document.getElementById(id).src;
};


getSizes('myimg',function(a){
  alert([a.w,a.h].join('; '));
});
Alar, верни репу!

Последний раз редактировалось Naive; 12.09.2012 в 07:36.
Naive вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Jquery как из $(this) получить имя объекта? Abuhamed JavaScript, Ajax 2 12.02.2012 03:43
Qt, клонирование QObject pproger Qt и кроссплатформенное программирование С/С++ 0 28.01.2012 16:02
ООП(Клонирование объектов) Gen_r_questions PHP 4 04.04.2011 01:11
Клонирование компонента chandrasecar Общие вопросы Delphi 8 31.10.2010 17:57
Клонирование Windows XP DJ HITMAN Windows 6 20.08.2010 13:35