我的函数中有值,但它没有定义。
这是我的代码:
<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);
提前致谢 ;)
最佳答案
设置超时时,它在全局范围内运行,因此mainHeight和upperstyle不再在范围内。您最好使用匿名函数并提供参数:
setTimeout(function() {
fullnameCenter(mainHeight,upperstyle);
}, 2000);
关于javascript - 在javascript/jquery中具有参数的函数将不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6976989/