问答详情
源自:5-1 编程挑战

为什么要在这里设置as[i]的背景颜色?

 // 点击三角时
    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==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;    
          }
        }
}

这是老师给出的示例代码,我想问一下为什么要在判断键码是否为40时也设置了as[i]的background?

提问者:盯叮町玎仃 2016-06-09 21:39

个回答

  • 海月明
    2016-06-10 10:31:46

    判断keycode==40是为了判断现在的是否为向下按钮。然后index确认最新被选中的按钮,所以那个背景是为最新选中的行所加的背景色