源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

一个javascript参数的小问题

  • 时间:2021-05-31 06:52 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:一个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) 这个函数接收参数??? 定时器好像没有丝毫作用
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部