2011-09-09 4 views
2

처리 방법 onLoad img 태그 이벤트?img 태그 등 onLoad 이벤트 처리 방법

예 :

$ ('img'). onload (function (e) { 
    alert ('image loaded' + $ (this), attr ('src')); 
}) 

은 ...

및 기타 태그 등 스크립트, 링크, 같은에서는 imageLoader처럼

$("img").one('load', function() { 
    // do stuff 
}).each(function() { 
    if(this.complete) $(this).load(); 
}); 
나를 위해 작동하는 것 같다

+1

더 명확해야합니다. – Gezim

+0

스크립트 및 링크에 onload 이벤트가 없습니다. – epascarello

답변

3

jQuery doc page for .load()에서이 작업을 수행하는 방법에 대한 예가 있습니다.

HTML :

<img src="book.png" alt="Book" id="book" /> 

자바 스크립트 :

$('#book').load(function() { 
    // Handler for .load() called. 
}); 

그리고, 그것도 jQuery를 페이지에 나와 조심하는주의의 무리가 있습니다.

이미지를 사용하면로드 핸들러가 호출되도록하려면 이미지를로드하기 전에로드 핸들러를 설정해야합니다. 코드로 이미지를 구성하는 경우 .src 특성을 설정하기 전에로드 처리기를 설정해야한다는 의미입니다. 일부 브라우저에서는 이미지가 메모리/디스크 캐시에있는 경우 .src을 할당하면 즉시로드되고 이후 .load() 핸들러를 설정하면 너무 늦어서 (이미지가 이미로드 될 것입니다) .load() 처리기가 호출되지 않습니다.

개체가 존재할 때까지 이벤트 처리기를 할당 할 수 없으므로 페이지 HTML에있는 이미지에 대해 jQuery 기반 .load()가 항상 호출되도록하는 방법을 모르겠지만 개체 종료되고 이미로드되었을 수 있습니다. 이전 스타일의 코딩이지만 실제 HTML에서는 onload = xxx가 아닌 jQuery 설정을 사용할 수 있습니다. 물론, 모든 페이지 이미지 (및 기타 리소스)가로드 된시기를 알기 위해 항상 window.onload를 연결할 수 있습니다.

+0

please @ jfriend00 섹션을 읽으십시오 : 이미지와 함께 사용될 때로드 이벤트주의 사항 – rkmax

+0

주의 사항을 읽었습니다. jQuery의 구현이 버그가 아니라면 왜 그렇게 비관적으로 들릴지 모르겠다. 나는로드 이벤트 (non-jQuery, plain-javascript 기반)를 사용하여 수천 개의 사이트에서 안정적으로 실행되는 코드의 이미지를 사용했습니다 (슬라이드 쇼를 실행하는 코드에서 다음 이미지가로드되고 표시 될 준비가되었음을 코드가 알고 있음).)와 IE6의 모든 종류의 브라우저를 사용합니다. 나는 그것에 문제가 없었습니다. 이벤트가 아직 시작되지 않았는지 확인해야하지만이를 감지하거나 방지 할 수있는 방법이 있습니다. – jfriend00

0

jQuery에는 load 메서드가 있으며 이 아닙니다. 그리고 코드는 아마도 다음과 같아야합니다.

$ ('img').load(function() { 
    alert('image loaded ' + this.src); 
})