一个javascript参数的小问题 |
本文标签:javascript,参数 以下是javascript function show(layername){ if (!document.getElementById) return false; if (!document.getElementById(layername)) return false; var layer = document.getElementById(layername); layer.style.width = "0px"; layer.style.height = "0px"; layer.style.display = "block"; movement = setTimeout("animation()",0) } function animation(){ if (!document.getElementById) return false; if (!document.getElementById(layername)) return false; var layer = document.getElementById(layername); var xpos = parseInt(layer.style.width); var ypos = parseInt(layer.style.height); if (xpos == 480 && ypos == 80){ return true; } if (xpos < 480){ xpos+=10 } if (xpos > 480){ xpos-=10 } if (ypos < 80){ ypos+=10 } if (ypos > 80){ ypos-=10 } layer.style.width = xpos + "px"; layer.style.height = ypos + "px"; movement = setTimeout("animation()",0); } 以下是html <div id=""> <ul> <li id="myfriends"> <a href="#" onmouseover="show(layer1);">我的好友</a></li> <li id="mydocument"> <a href="#" onmouseover="show(layer2);">我的资料</a></li> <li id="myalbum"> <a href="#" onmouseover="show(layer3);">我的相册</a></li> <li id="myarticles"> <a href="#" onmouseover="show(layer4);">我的文章</a></li> </ul> </div> <div id="layer1" class="clearfloat"> </div> <div id="layer2" class="clearfloat"> </div> <div id="layer3" class="clearfloat"> </div> <div id="layer4" class="clearfloat"> </div> 问题 如果使用参数layer1、layer2、layer3、layer4,则每次都不成功,提示layername is undefined 如果将javascript里的layername换成div的id值就能成功,但如果这样javascript程序就会很多 请问怎样才能正确的使用参数的形式? 解决方法: movement = setTimeout("animation()",0) 这个地方没有给animation()传参数过去 而定义的animation()函数也没有接受参数,但是又用 var layer = document.getElementById(layername); 来接收layername 这个变量 错误地理解了闭包?想从 function show(layername) 这个函数接收参数??? 定时器好像没有丝毫作用 |