为了账号安全,请及时绑定邮箱和手机立即绑定

这段代码的JS部分封装起来就不起作用了,为什么?是我封装错了吗?

这段代码的JS部分封装起来就不起作用了,为什么?是我封装错了吗?

Fornow 2015-10-15 17:49:37
原来的代码:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>导航菜单</title> <style type="text/css"> * { margin: 0; padding: 0; font-size: 14px; } a { color: #333; text-decoration: none } ul { list-style: none; height: 30px; border-bottom: 5px solid #F60; margin-top: 20px; padding-left: 50px; } ul li { float: left } ul li a { display: block; height: 30px; text-align: center; line-height: 30px; width:120px; background: #efefef; margin-left: 1px; } a.on, a:hover { background: #F60; color: #fff; } </style> <script> window.onload=function(){     var aA=document.getElementsByTagName('a'); for(var i=0; i<aA.length; i++){ aA[i].onmouseover=function(){ var This=this; clearInterval(This.time); This.time=setInterval(function(){ This.style.width=This.offsetWidth+8+"px"; if(This.offsetWidth>=160) clearInterval(This.time); },30) } aA[i].onmouseout=function(){ clearInterval(this.time); var This=this; this.time=setInterval(function(){ This.style.width=This.offsetWidth-8+"px"; if(This.offsetWidth<=120){ This.style.width='120px'; clearInterval(This.time); } },30) } } } </script> </head> <body> <ul>     <li><a class="on" href="#">首  页</a></li>     <li><a href="#">新闻快讯</a></li> <li><a href="#">产品展示</a></li>     <li><a href="#">售后服务</a></li>     <li><a href="#">联系我们</a></li> </ul> </body> </html>JS部分封装后:<script> window.onload=function(){     wrap('a'); } function wrap(obj){ var x=obj; var aA=document.getElementsByTagName('x'); for(var i=0; i<aA.length; i++){ aA[i].onmouseover=function(){ var This=this; clearInterval(This.time); This.time=setInterval(function(){ This.style.width=This.offsetWidth+8+"px"; if(This.offsetWidth>=160) clearInterval(This.time); },30) } aA[i].onmouseout=function(){ clearInterval(this.time); var This=this; this.time=setInterval(function(){ This.style.width=This.offsetWidth-8+"px"; if(This.offsetWidth<=120){ This.style.width='120px'; clearInterval(This.time); } },30) } } } </script>
查看完整描述

1 回答

已采纳
?
__End

TA贡献4条经验 获得超1个赞

var aA=document.getElementsByTagName('x');

这句话有问题,不能加单引号,加了就是字符串了,不加才是传进来的obj


查看完整回答
反对 回复 2015-10-15
  • Fornow
    Fornow
    还想问下,这个 var aA=document.getElementsByTagName('x'); x有双引号的么?
  • __End
    __End
    引号都不能加
  • Fornow
    Fornow
    额。。我试了下可以了,谢谢。 但是又有一个新问题好奇怪, <script> window.onload=function(){ wrap('a'); } function wrap(obj){ var aA=document.getElementsByTagName(obj); for(var i=0; i<aA.length; i++){ aA[i].onmouseover=function(){ var This=this; clearInterval(This.time); This.time=setInterval(function(){ This.style.width=This.offsetWidth+8+"px"; if(This.offsetWidth>=160) clearInterval(This.time); },30) } aA[i].onmouseout=function(){ clearInterval(this.time); var This=this; this.time=setInterval(function(){ This.style.width=This.offsetWidth-8+"px"; if(This.offsetWidth<=120){ This.style.width='120px'; clearInterval(This.time); } },30) } } } </script> 这串代码可行,但是我给script标签加src又不行了是为什么呢?如下 <script src="js/wrap.js">
点击展开后面2
  • 1 回答
  • 0 关注
  • 1342 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信