首先,我在加载图像时调用函数reloadImage1,如下所示:
<img src="loading.gif" onload="reloadImage1(this,'newphoto.jpg')">这是reloadImage1:
function reloadImage1(img,isrc)
{
setTimeout("reloadImage2(img,isrc)",2000);
}这是reloadImage2:
function reloadImage2(img,isrc)
{
img.removeAttribute("onload");
img.src = isrc;
}我在执行reloadImage1时收到以下错误消息:
ReferenceError: img is not defined
发布于 2012-11-03 17:42:20
尝试将reloadImage1更改为:
function reloadImage1(img, isrc) {
setTimeout(function() {
reloadImage2(img, isrc);
}, 2000);
}查看此演示:http://jsfiddle.net/MrATK/
发布于 2012-11-03 17:45:37
在你的代码中:
> function reloadImage1(img,isrc) {img和src是函数的局部变量。
> setTimeout("reloadImage2(img,isrc)",2000);
> }当将字符串传递给setTimeout时,它是在全局上下文中执行的,它无权访问函数中的变量img和src。取而代之的是传递一个对原始函数上下文有闭包的函数,例如:
setTimeout(function() {reloadImage2(img,isrc);}, 2000);https://stackoverflow.com/questions/13207909
复制相似问题