Mar*_*cus 0 javascript variables settimeout
我的setTimeout函数有问题.这是代码:
1 var urlArray = ["pic1.gif"; "pic2.gif"]
2 function changeBackground(elementId, backgroundImage){
3 document.getElementById(elementId).style.background="url("+backgroundImage+")";
4 }
5 function mouseover_1(elementId){
6 changeBackground(elementId,urlArray[0]);
7 setTimeout("changeBackground(elementId,urlArray[1])",300);
8 }
Run Code Online (Sandbox Code Playgroud)
并在身体:
<area shape="rect" coords="0,0,95,91" onMouseOver="mouseover_1('navigator_1')">
Run Code Online (Sandbox Code Playgroud)
现在,Javascript代码中的第6行就像一个魅力(图片更改!),但第7行不起作用(没有图片更改).这是Firefox中调试的错误:
elementId is not defined line: 7
Run Code Online (Sandbox Code Playgroud)
但是由于第6行有效,我真的不知道问题是什么.你有什么建议吗?
如果将字符串传递给setTimeout,则不会在函数的上下文中计算字符串(因此elementId不存在).
你应该使用一个闭包:
setTimeout(function()
{
changeBackground(elementId, urlArray[1]);
}, 300);
Run Code Online (Sandbox Code Playgroud)