2012-11-17 1 views
2

를로드 할 수 내 자바 스크립트에서이 줄을 얻었다. 이 함수에 콜백을 첨부 할 수 있습니까? 이 작업이 끝날 때까지 다른 작업을 기다리기 만하면됩니다. 대기가

은 succesfull를 werent :

$("#botbg").css("background-image", "url(/png/" + epage + ".jpg)").load(function(){ 
//... 
}); 

$("#botbg").css("background-image", "url(/png/" + epage + ".jpg)").one("load", function(){ 
//... 
}); 

$("#botbg").css("background-image", "url(/png/" + epage + ".jpg)").ready(function(){ 
//... 
}); 

답변

0

아니, 당신은 할 수 없습니다.

<div id="tmp"><img src="/png/yourimage.jpg" /></div> 

$("#tmp").load(function(){ 
    $("#botbg").css("background-image", "url(/png/yourimage.jpg)"); 
}); 

편집

새로운 방법 : 당신이 할 수있는

가장 좋은 것은 다음로드 콜백은 다음과 같이 호출 할 때와 배경 이미지를 설정 임시 DIV 안에 이미지를로드하는 것입니다 콜백 함수 만에 적용 jQuery를 기능) (

<div id="tmp"><img src="/png/yourimage.jpg" /></div> 

$("#tmp").on("load", function() { 
    $("#botbg").css("background-image", "url(/png/yourimage.jpg)"); 
}); 
+0

을 시도하고 일관되고 신뢰할 수있는 크로스 브라우저가 작동하지 않습니다. – Bogdan

+0

알았어, 그걸 몰랐어, 내 대답 acc. 이 포스트에 http://stackoverflow.com/questions/12643160/load-method-deprecated – sdespont

+0

img가로드되었는지 테스트하는 대신 div _tmp_가로드되었는지 테스트하지 않습니까? – Bruno

0

.load를 불러3210 작업 이후에 css 함수는 synchronized 함수이므로 콜백과 같은 것은 없으므로 .css() 함수를 호출 한 후 모든 코드 행을 즉시 호출합니다.

그러나 배경 이미지의로드를 추적 할 수도 있지만 이미지를 표시 한 후에 코드가 실행되지 않을 수도 있습니다. 특히 큰 이미지의 경우 브라우저에서 이미지를 render 시간이 걸릴 것입니다. . 이미지는 다음과 같은 일을 할 수있는로드 된 경우 추적하려면 :

$img = $('<img src="/png/'+epage+'.jpg" id="myImg"/>');//now it will work 
$img.bind('load',function(){ 
    $("#botbg").css("background-image", "url(/png/" + epage + ".jpg)"); 
}); 

다음은 기능 fiddle입니다.

는 나는 그것이 도움이되기를 바랍니다. 건배

+0

콜백 후 알림 메시지가 나타납니다. 화재가 아닙니다. : S –

+0

죄송합니다. 제대로 수정하겠습니다. 벙어리 내게 중요한 세부 사항을 잊어 버렸습니다. –

2

[부하가() (http://api.jquery.com/load-event/) ** 추천되고 있지 않기 때문에이 솔루션이이 권고 아니에요 일 수도 있지만 **

var img = new Image(); 
img.src = url; 
img.onload = function() { 
    $("#botbg").css("background-image", "url(" + url + ")"); 
} 
+0

"function() {"은 화재가 아닙니다 : S –

+0

@BigX_Jazz 내 피들 [** 여기 **]에서 (http://jsfiddle.net/aqRYF/1/) – Bruno

관련 문제