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

onkeyup事件中的循环为何要这样写?

 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].style.background = '#fff';

}

,不能直接写成下面这样呢?

for(var i=0; i<as.length;i++){

 var index=i;

as[index].style.background = '#ccc';

}


正在回答

2 回答

个人理解是每次键盘按下之后,这段代码都会执行一遍,首先把之前的样式清空,之后根据按下那个键来更改样式。至于把i赋值给index,会改变index的值。对后面的语句会有影响的。如果要这样写的话,就要用函数封装,这样才不会更改index的值。

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

如果不重置的话,之前的样式会有残留。

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

举报

0/150
提交
取消

onkeyup事件中的循环为何要这样写?

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