2011-11-14 3 views
3

내 jQuery 코드 :JQuery와 GET 이미지 폭

img[i]='img-src'; 
$("#popimage1").attr("src",img[i]); 
alert($("#popimage1").width());  //doesn't give the width of the current image, but it gives for the previous, and for first null 

내 HTML 코드 :

<img src="" id="popimage1"/> 

그래서 개념이 난 후, JQuery와 각 i에 서로 다른 이미지 SRC를로드하고 있다는 것입니다 나는 너비와 높이로 계산을한다. 문제는 이전 카운터 i로 이미지 값을 얻는다는 것입니다. 임시 솔루션을 만들었습니다.

$("#popimage1").hide(); 
    setTimeout(alert($("#popimage1").width(),2000); 
    $("#popimage1").show(); 

그러나 항상 작동하지 않아 불필요한 시간 초과가 발생합니다. 경고 대신 img 너비와 높이를 사용하는 다른 함수가 있는데, 사용자의 편의를 위해 경고를 썼습니다. 어떤 도움을 주셔서 감사합니다!

+0

가능한 중복 처리

봅니다 [사파리/크롬에서 자바 스크립트와 실제 이미지의 폭과 높이를 가져 오기?] (http://stackoverflow.com/questions/318630/get-real-image -width-and-height-with-javascript-in-safari-chrome) – Blazemonger

+0

실제로 읽지 않았습니다 .. – user666

+0

대답을 사용 해보려고 시도 했습니까? 그것은 당신의 목적에 부합해야합니다. – Blazemonger

답변

9

이미지가 먼저로드 될 때까지 기다려야합니다.

시도해보십시오.

img[i] = "img-src"; 
$("#popimage1").attr("src", img[i]).load(function() { 
    alert($("#popimage1").width()); 
}); 
+0

감사합니다. 로드()를 직접 확인하겠습니다! – user666

+0

감사합니다! 나에게 시간을 절약 – Shide

1

이미지 원본을 수정하면 비동기이므로 즉시 반환되지 않습니다. 의 load()

$("#popimage1").load(function() { 
    alert($(this).width()); 
}); 
+0

이것은 정답이다 고맙습니다. – user666

+0

@greek_no_money 오신 것을 환영합니다. –