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"究竟是怎么起作用的?
键盘事件中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"究竟是怎么起作用的?
2018-01-30
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的菜单选项变为红色
事件触发时,函数中的代码从上到下的运行。如果不遍历菜单数组将每个选项的背景重置为白色,那么按一次向下键就有一个选项的背景色变红,按完几次后所有的选项都变红了(用户不知道自己此刻选中的是哪个选项),所以每次键盘按下之前要将之前按下的效果清空。
举报