index=as[i].num-1?

来源:5-1 编程挑战

大GIGI

2016-08-18 19:21

为什么鼠标滑过的时候index=as[i].num-1?是什么作用?求解答谢谢

写回答 关注

1回答

  • Rimas
    2016-08-18 22:22:22
    已采纳
    <!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;
          menu.style.display = 'block';
          if(event.stopPropagation){
            event.stopPropagation(); 
          }else{
            event.cancelBubble = true;     
               }
        document.onkeyup = function(event){
        event = event||window.event;
        if(event.keyCode==40){
          index++;
          if(index>=as.length) index=0;
          for(var i=0; i<as.length;i++){
            as[i].style.background = '#fff';
          }
          as[index].style.background = '#ccc';
        } 
        if(event.keyCode==38){
          index--;
          if(index<0) index=as.length-1;
          for(var i=0; i<as.length;i++){
            as[i].style.background = '#fff';
          }
          as[index].style.background = '#ccc';
        }
        if(event.keyCode==13){
          for(var i=0; i<as.length;i++){
            as[i].style.background = '#fff';
          }
          title.innerHTML = as[index].innerHTML;
          menu.style.display = 'none';
        }  
        }
        }  
        
       // 滑过滑过、离开、点击每个选项时
          for(var i=0; i<as.length; i++){
           as[i].num = i
           console.log(as[i].num);
           as[i].onmouseover = function(){
           this.style.background = '#ccc'
        //提问内容:
           index = as[i].num-1;   
           }
         as[i].onmouseout = function(){
          this.style.background = '#fff'   
         }
         as[i].onclick = function(event){
          event = event||window.event;
          if(event.stopPropagation){
             event.stopPropagation(); 
          }else{
             event.cancelBubble = true;     
          }
          menu.style.display = 'none';
          title.innerHTML = this.innerHTML;  
         }  
        }
       // 点击页面空白处时
          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>

    你说的是上面这个代码吧??

    你把这句注释了,你会发现依然可以很好的运行。

    而且我发现,如果不注释,运行的过程中,会报错,很奇怪。如果知道后续我们继续讨论!

    http://img.mukewang.com/57b5c43f0001f33806560319.jpg

    Rimas 回复大GIGI

    既然注释掉反复测试没什么bug,就认为它是没用的吧!

    2016-08-19 12:08:52

    共 2 条回复 >

DOM事件探秘

DOM事件?本课程会通过实例来给小伙伴们讲解如何使用这些事件

99545 学习 · 1197 问题

查看课程

相似问题