2011-09-09 8 views
1

이미지를 무작위로로드하는 PHP 코드 블록이 있습니다. 이미지가로드 된시기를 확인하려고하므로 추가 작업을 수행 할 수 있습니다. 다음은 현재 내 이미지를로드하는 방법입니다.이미지로드가 완료되면 어떻게 결정합니까?

// Gets my image 
$sql = "SELECT id FROM images WHERE user_id=$owner_user_id LIMIT 0,1"; 
$imgres = mysql_query($sql); 
if ($imgres) { 
    $imgrow = mysql_fetch_array($imgres, MYSQL_ASSOC); 
    if (!empty($imgrow)) { 
     echo ('<image src="img.php?id=' . $imgrow['id'] . '" id="profile_img" style="visibility:hidden"/>'); 
    } 
} 

내가해야 할 작업 중 하나는 이미지의 너비를 얻는 것입니다. 다음과 같은 이미지가 표시됩니다.

alert("IMAGE WIDTH:"+$('#profile_img').width()); 

이미지가로드되기 전에 호출 중이므로 현재 0을 반환합니다. 이 메소드 호출을 document.ready 블록에 추가하려고 시도했지만 이미지가로드되기 전에 여전히 호출됩니다. 이미지가로드 된시기를 쉽게 확인할 수 있습니까? 이건 정말 아무 상관이

http://api.jquery.com/load-event/

답변

0
$("#profile_img").load(function(){ 
    alert(("IMAGE WIDTH:"+$('#profile_img').width()) 
}); 

http://api.jquery.com/load-event/

+0

위대한 작품! 항상 더 쉬울 것입니다. 도와 주셔서 감사합니다! – Paul

1
$(document).ready(function(){ 
    $('#img_id').load(function() { 
     alert('image is loaded'); 
     }); 
}); 

이것은 당신이 jQuery로 이미지를로드 이벤트 처리기를 바인딩 할 수 있습니다

+0

젠장, 당신은 빠르다 – genesis

+0

좋은, 좋은 하나. –

+3

jQuery 문서는 특별히 이미지에'.load()'사용을 경고한다 : http://api.jquery.com/load-event/ – Blazemonger

1

트릭을 할 것입니다 PHP와 관련있다. 이미지로드는 클라이언트 측에서 수행되므로 Javascript 측에서 수행해야합니다. 당신은 자바 스크립트 이벤트를 처리 할 수 ​​있습니다 - 여기에 프라이머의 : 다행히

http://www.quirksmode.org/js/introevents.html

, jQuery를 사용하면 통과 할 수 있습니다 (! 심지어 load()라고합니다) 당신을위한 이벤트에 결합 할 수있는 내장 기능이 있습니다 해당 내용이로드되면 호출 할 콜백입니다.

0

가장 좋은 방법은 사전에 모든 DOM 로딩에 자바 스크립트에서 이미지를 미리로드하는 것입니다

<SCRIPT language="JavaScript"> 
    preload_image = new Image(25,25); 
    preload_image.src="http://mydomain.com/image.gif"; 
</SCRIPT> 

이미지를로드 할 때 테스트 jQuery를 .load()를 사용하지 마십시오. 그것은 지속적으로 작동하지 않습니다 •

도 안정적으로 이미지 SRC가 같은 SRC로 설정되어있는 경우 그것은 웹킷에서 제대로 실행되지 않습니다 • 크로스 브라우저

[그 것이다] 다음 jQuery docs에 따르면, 같은

전에 •이 수행하는 DOM 트리를 제대로 수행하지 않는 버블

• 이미 브라우저의 캐시에 살고 이미지를 해고 중단 할 수

관련 문제