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

if(ev.keyCode==40) {inde

键盘事件中if(ev.keyCode==40) {index++;if(index>as.length){index=0;} for(var i=0;i<as.length;i++ ){as[i].style.backgroundColor="white";} as[index].style.backgroundColor="red";中这个as[i].style.backgroundColor="white"究竟是怎么起作用的?

正在回答

1 回答

if(ev.keyCode==40) {                      //如果在键盘上按下下键
  index++;                                //变量index的值加1
  if(index=as.length){                    //判断index的值是否等于下拉菜单长度
    index=0;                              //如果Index的值等于菜单长度则说明索引越界,需要将其重置为零
  } 
for(var i=0;i<as.length;i++ ){            //遍历菜单选项的数组
  as[i].style.backgroundColor="white";    //将每个选项的背景设为白色
} 
as[index].style.backgroundColor="red";    //将索引为index的菜单选项变为红色

事件触发时,函数中的代码从上到下的运行。如果不遍历菜单数组将每个选项的背景重置为白色,那么按一次向下键就有一个选项的背景色变红,按完几次后所有的选项都变红了(用户不知道自己此刻选中的是哪个选项),所以每次键盘按下之前要将之前按下的效果清空。

0 回复 有任何疑惑可以回复我~
#1

慕的地6730654 提问者

非常感谢!
2018-02-01 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

if(ev.keyCode==40) {inde

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信