onkeyup事件中的循環(huán)為何要這樣寫?
?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';
} ?
?}
? ? } ?
為何每次都要在循環(huán)中先重置背景顏色
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';
}
2016-03-08
個人理解是每次鍵盤按下之后,這段代碼都會執(zhí)行一遍,首先把之前的樣式清空,之后根據(jù)按下那個鍵來更改樣式。至于把i賦值給index,會改變index的值。對后面的語句會有影響的。如果要這樣寫的話,就要用函數(shù)封裝,這樣才不會更改index的值。
2016-02-14
如果不重置的話,之前的樣式會有殘留。