Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   JQuery. Клонирование объекта (https://javascript.ru/forum/jquery/31531-jquery-klonirovanie-obekta.html)

Unknown 11.09.2012 20:11

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>

shaltay 11.09.2012 23:19

function getRealImageSize(x){
	x.removeAttr("width").removeAttr("height").css({ width: "", height: "" });						
	return {'width':x.width(),'height':x.height()};
}

$(document).ready(function() { 
	var x = $('#myimg');
	x.load(function(){
		var realsize = getRealImageSize(x);
		alert(realsize.width+';'+realsize.height);
	});
});


Не забывайте про load(); Картинка не успевает подгрузиться.


Часовой пояс GMT +3, время: 00:03.