동적으로 로드된 이미지의 크기를 가져오는 데 오류가 발생하기 쉬운 방법이 있습니다.
웹 페이지에서 이미지를 다운로드하기 전에 코드를 호출하는 경우는 그렇지 않습니다. 머신에서 개발할 때 쉽게 찾을 수 있습니다.
jQuery load() 이벤트 처리의 BUG. 브라우저 캐시에서 이미지를 가져올 때 잘못된 크기를 가져옵니다.
잘못된 코드는 다음과 같습니다.
( 오류) HTML을 추가한 후 즉시 크기를 가져오려면 코드를 호출하세요
var html = '';
$(' #my_div').html(html);
var width = $('#my_div img').width(); // 0을 반환할 수 있음
(오류) jQuery의 load() 이벤트 처리를 사용하세요
var html = '';
var img = $(html);
html.load(function(){
// 이미지가 브라우저 캐시에서 로드되면 0을 반환
var width = img.width();
}) ;
$('#my_div').html(img)
다음은 JavaScript Image 클래스를 사용하는 정말 올바른 방법입니다.
올바른 방법
var html = '';
$('#my_div').html(html);
var ni = new Image();
ni .onload = function(){
var width = ni.width;
}
ni.src = img.attr(URL);