2011-08-08 3 views
0

내 함수에 값이 있지만 정의되어 있지 않습니다.javascript/jquery에 매개 변수가있는 함수가 작동하지 않습니다.

<img onload="getFullnameDetails(263,225)" src="'+getBaseURL()+'js/check/no-image.png" rel="fullname" /> 

function getFullnameDetails(mainHeight,upperstyle){ 
setTimeout("fullnameCenter(mainHeight,upperstyle)",2000); 
} 

function fullnameCenter(mainHeight,upperstyle){ 
    var distOfMainAndUpper = 38; 
    var mainHalfHeight = 131.5; 
    var imageHeight = jQuery("img[rel='fullname']").height(); //there is a delay 
    var imageHalfHeight = imageHeight/2; 
    var fromImageTopToMainHalf = mainHalfHeight - imageHeight; 
    var position = imageHalfHeight+fromImageTopToMainHalf-distOfMainAndUpper; 
    jQuery(".test1").css("bottom",position+"px"); 
} 

그것은 mainHeight가 정의되어 있지 않은 것을 여기에 말한다 :

내 코드입니다. 왜 이런 일이 일어나는가? 이이 줄에서 발생 : 사전에 setTimeout("fullnameCenter(mainHeight,upperstyle)",2000);

감사)

답변

1

, 그것은 mainHeight 있도록 전역에서 실행하지 않고 upperstyle가 더 이상에 시도 범위. 당신은 매개 변수를 익명 함수를 사용하여 제공하는 것이 더 낫다 :

setTimeout(function() { 
    fullnameCenter(mainHeight,upperstyle); 
}, 2000); 
2

당신이 제한 시간을 설정하면이

function getFullnameDetails(mainHeight,upperstyle){ 
    setTimeout(function() {fullnameCenter(mainHeight,upperstyle);},2000); 
} 
+0

페냐, 고마워, 고마워! ;) – PinoyStackOverflower

0
var imageHeight = jQuery("img[rel='fullname']").height(); //there is a delay 

당신은 JQuery와 이미지 개체를 얻을 작동하지! 당신은 지연이 시도하지 않아도 전화 당신에게 비밀을 나에게하자

var imageHeight = jQuery("img[rel='fullname']")[0].height; 

당신은 내가 추가 한 내용은 "[0]"JQuery와 선택 후에는 HTML 이미지 요소가 아닌 이미지를 반환합니다 jquery 객체.

관련 문제