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

求大神解释为什么我这个代码键盘事件放在后面就不能用了

求大神解释为什么我这个代码键盘事件放在后面就不能用了

健C 2016-07-25 21:41:19
<!doctype html><html><head>    <meta charset="UTF-8">    <title>下拉菜单</title>    <style type="text/css">body,ul,li{ margin:0; padding:0; font-size:13px;}ul,li{list-style:none;}#divselect{width:186px; margin:80px auto; position:relative; z-index:10000;}#divselect cite{width:150px; height:24px;line-height:24px; display:block; color:#807a62; cursor:pointer;font-style:normal;padding-left:4px; padding-right:30px; border:1px solid #333333; background:url(xjt.png) no-repeat right center;}#divselect ul{width:184px;border:1px solid #333333; background-color:#ffffff; position:absolute; z-index:20000; margin-top:-1px; display:none;}#divselect ul li{height:24px; line-height:24px;}#divselect ul li a{display:block; height:24px; color:#333333; text-decoration:none; padding-left:10px; padding-right:10px;}</style>   <script type="text/javascript">window.onload=function(){var box=document.getElementById('divselect'),   title=box.getElementsByTagName('cite')[0],   menu=box.getElementsByTagName('ul')[0],   as=box.getElementsByTagName('a'),        index=-1;       // 点击三角时    title.onclick=function(event){      // 执行脚本      event= event||window.event;      if(event.stopPropagation){          event.stopPropagation();      }else{          event.cancelBubble=true;      }      menu.style.display="block";    }/***键盘事件****************************************/document.onkeyup=function(e){          e=e || window.event;          for(var i=0;i<as.length;i++){            as[i].style.background='none';          } if(e.keyCode==32){ menu.style.display="block"; }          // 如果按下了向下方向键          if(e.keyCode==40){             index++;             if(index>=as.length){               index=0;             }             as[index].style.background="#ccc";          }          // 如果按下了向上方向键          if(e.keyCode==38){             if(index<=0){               index=as.length;             }             index--;                as[index].style.background="#ccc";                }          // 如果按下了回车键          if(e.keyCode==13 && index!=-1){            title.innerHTML=as[index].innerHTML;            for(var i=0;i<as.length;i++){              as[i].style.background='none';            }            menu.style.display='none';            index=-1;              }        }          // 滑过滑过、离开、点击每个选项时      // 执行脚本      for(var i=0;i<as.length;i++ ){          as[i].onmouseover=function(){              this.style.backgroundColor="#CCC"          }          as[i].onmouseout=function(){              this.style.backgroundColor="#FFF"          }          as[i].onclick=function(){              title.innerHTML=this.innerHTML;              menu.style.display="none";          }      }   // 点击页面空白处时       // 执行脚本       document.onclick=function(){           menu.style.display="none";       } }             </script></head><body><div id="divselect">      <cite>请选择分类</cite>      <ul>         <li id="li"><a href="javascript:;" selectid="1">ASP开发</a></li>         <li><a href="javascript:;" selectid="2">.NET开发</a></li>         <li><a href="javascript:;" selectid="3">PHP开发</a></li>         <li><a href="javascript:;" selectid="4">Javascript开发</a></li>         <li><a href="javascript:;" selectid="5">Java特效</a></li>      </ul>    </div></body></html>然后我把键盘事件放在后面就不能用了,键盘按键用不了<!doctype html><html><head>    <meta charset="UTF-8">    <title>下拉菜单</title>    <style type="text/css">body,ul,li{ margin:0; padding:0; font-size:13px;}ul,li{list-style:none;}#divselect{width:186px; margin:80px auto; position:relative; z-index:10000;}#divselect cite{width:150px; height:24px;line-height:24px; display:block; color:#807a62; cursor:pointer;font-style:normal;padding-left:4px; padding-right:30px; border:1px solid #333333; background:url(xjt.png) no-repeat right center;}#divselect ul{width:184px;border:1px solid #333333; background-color:#ffffff; position:absolute; z-index:20000; margin-top:-1px; display:none;}#divselect ul li{height:24px; line-height:24px;}#divselect ul li a{display:block; height:24px; color:#333333; text-decoration:none; padding-left:10px; padding-right:10px;}</style>   <script type="text/javascript">window.onload=function(){var box=document.getElementById('divselect'),   title=box.getElementsByTagName('cite')[0],   menu=box.getElementsByTagName('ul')[0],   as=box.getElementsByTagName('a'),        index=-1;       // 点击三角时    title.onclick=function(event){      // 执行脚本      event= event||window.event;      if(event.stopPropagation){          event.stopPropagation();      }else{          event.cancelBubble=true;      }      menu.style.display="block";    }     // 滑过滑过、离开、点击每个选项时      // 执行脚本      for(var i=0;i<as.length;i++ ){          as[i].onmouseover=function(){              this.style.backgroundColor="#CCC"          }          as[i].onmouseout=function(){              this.style.backgroundColor="#FFF"          }          as[i].onclick=function(){              title.innerHTML=this.innerHTML;              menu.style.display="none";          }      }   // 点击页面空白处时       // 执行脚本       document.onclick=function(){           menu.style.display="none";       } }          /***键盘事件****************************************/document.onkeyup=function(e){          e=e || window.event;          for(var i=0;i<as.length;i++){            as[i].style.background='none';          } if(e.keyCode==32){ menu.style.display="block"; }          // 如果按下了向下方向键          if(e.keyCode==40){             index++;             if(index>=as.length){               index=0;             }             as[index].style.background="#ccc";          }          // 如果按下了向上方向键          if(e.keyCode==38){             if(index<=0){               index=as.length;             }             index--;                as[index].style.background="#ccc";                }          // 如果按下了回车键          if(e.keyCode==13 && index!=-1){            title.innerHTML=as[index].innerHTML;            for(var i=0;i<as.length;i++){              as[i].style.background='none';            }            menu.style.display='none';            index=-1;              }        }           </script></head><body><div id="divselect">      <cite>请选择分类</cite>      <ul>         <li id="li"><a href="javascript:;" selectid="1">ASP开发</a></li>         <li><a href="javascript:;" selectid="2">.NET开发</a></li>         <li><a href="javascript:;" selectid="3">PHP开发</a></li>         <li><a href="javascript:;" selectid="4">Javascript开发</a></li>         <li><a href="javascript:;" selectid="5">Java特效</a></li>      </ul>    </div></body></html>
查看完整描述

1 回答

已采纳
?
刚毅87

TA贡献345条经验 获得超309个赞

.那是因为你把键盘事件放在了 window.onload 事件外面了, onkeyup 不识别 as 了.

查看完整回答
1 反对 回复 2016-07-25
  • 健C
    健C
    一言惊醒梦中人啊,看来我还是太粗心了
  • 1 回答
  • 0 关注
  • 1243 浏览

添加回答

举报

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