求大神指導?。?!鍵盤事件一直沒用,不知道哪里出問題了!?。?/h1>
<!doctype?html>
<html>
<head>
????<meta?charset="UTF-8">
????<title>下拉菜單</title>
????<style?type="text/css">
body,ul,li{?margin:0;?padding:0;?font-size:13px;}
ul,li{list-style:none;}
#divselect{width:186px;?margin:80px?auto;?position:relative;?z-index:10000;}
#divselect?cite{width:150px;?height:24px;line-height:24px;?display:block;?color:#807a62;?cursor:pointer;font-style:normal;
padding-left:4px;?padding-right:30px;?border:1px?solid?#333333;?
background:url(xjt.png)?no-repeat?right?center;}
#divselect?ul{width:184px;border:1px?solid?#333333;?background-color:#ffffff;?position:absolute;?z-index:20000;?margin-top:-1px;?display:none;}
#divselect?ul?li{height:24px;?line-height:24px;}
#divselect?ul?li?a{display:block;?height:24px;?color:#333333;?text-decoration:none;?padding-left:10px;?padding-right:10px;}
????</style>
???<script?type="text/javascript">
window.onload=function(){
????var?box=document.getElementById('divselect'),
????????title=box.getElementsByTagName('cite')[0],
????????menu=box.getElementsByTagName('ul')[0],
????????as=box.getElementsByTagName('a'),
????????index=-1;
???
????//?點擊三角時
????title.onclick=function(event){
??????//?執行腳本
??????event=event||window.event;
??????if(event.stopPropagation){
??????????event.stopPropagation();
??????}else{
??????????event.cancelBubble=true;
??????}
??????menu.style.display='block';
????}??
????
???//?滑過滑過、離開、點擊每個選項時
??????//?執行腳本
??????for(var?i=0;i<as.length;i++){
??????????as[i].onmouseover=function(){
??????????????this.style.backgroundColor='#ccc';
??????????}
??????????as[i].onmouseout=function(){
??????????????this.style.backgroundColor='#fff';
??????????}
??????????as[i].onclick=function(){
??????????????title.innerHTML=this.innerHTML;
??????????????menu.style.display='none';
??????????}
??????}
????//鍵盤事件
????document.onkeydown=function(event){
????????event=event||window.event;
????????if(event.keyCode==40){
????????????index++;
????????????if(index>as.length-1)index=0;
????????????for(var?i=0;i<as.length;i++){
????????????????this.style.backgroundColor='#fff';
????????????}
????????????as[index].style.backgroundColor='#ccc';
????????}
????????if(event.keyCode==38){
????????????index--;
????????????if(index<0)index=as.length-1;
????????????for(var?i=0;i<as.length;i++){
????????????????this.style.backgroundColor='#fff';
????????????}
????????????as[index].style.backgroundColor='#ccc';
????????}
????????if(event.keyCode==13){
???????????
????????????????title.innerHTML=as[index].innerHTML;
????????????????menu.style.display='none';
????????????
????????}
????}
??????
???//?點擊頁面空白處時
???????//?執行腳本
???????document.onclick=function(event){
???????????event=event||window.event;
???????????menu.style.display='none';
???????}
?}
???</script>
</head>
<body>
????<div?id="divselect">
??????<cite>請選擇分類</cite>
??????<ul>
?????????<li?id="li"><a?href="javascript:;"?selectid="1">ASP開發</a></li>
?????????<li><a?href="javascript:;"?selectid="2">.NET開發</a></li>
?????????<li><a?href="javascript:;"?selectid="3">PHP開發</a></li>
?????????<li><a?href="javascript:;"?selectid="4">Javascript開發</a></li>
?????????<li><a?href="javascript:;"?selectid="5">Java特效</a></li>
??????</ul>
????</div>
</body>
</html>
<!doctype?html> <html> <head> ????<meta?charset="UTF-8"> ????<title>下拉菜單</title> ????<style?type="text/css"> body,ul,li{?margin:0;?padding:0;?font-size:13px;} ul,li{list-style:none;} #divselect{width:186px;?margin:80px?auto;?position:relative;?z-index:10000;} #divselect?cite{width:150px;?height:24px;line-height:24px;?display:block;?color:#807a62;?cursor:pointer;font-style:normal; padding-left:4px;?padding-right:30px;?border:1px?solid?#333333;? background:url(xjt.png)?no-repeat?right?center;} #divselect?ul{width:184px;border:1px?solid?#333333;?background-color:#ffffff;?position:absolute;?z-index:20000;?margin-top:-1px;?display:none;} #divselect?ul?li{height:24px;?line-height:24px;} #divselect?ul?li?a{display:block;?height:24px;?color:#333333;?text-decoration:none;?padding-left:10px;?padding-right:10px;} ????</style> ???<script?type="text/javascript"> window.onload=function(){ ????var?box=document.getElementById('divselect'), ????????title=box.getElementsByTagName('cite')[0], ????????menu=box.getElementsByTagName('ul')[0], ????????as=box.getElementsByTagName('a'), ????????index=-1; ??? ????//?點擊三角時 ????title.onclick=function(event){ ??????//?執行腳本 ??????event=event||window.event; ??????if(event.stopPropagation){ ??????????event.stopPropagation(); ??????}else{ ??????????event.cancelBubble=true; ??????} ??????menu.style.display='block'; ????}?? ???? ???//?滑過滑過、離開、點擊每個選項時 ??????//?執行腳本 ??????for(var?i=0;i<as.length;i++){ ??????????as[i].onmouseover=function(){ ??????????????this.style.backgroundColor='#ccc'; ??????????} ??????????as[i].onmouseout=function(){ ??????????????this.style.backgroundColor='#fff'; ??????????} ??????????as[i].onclick=function(){ ??????????????title.innerHTML=this.innerHTML; ??????????????menu.style.display='none'; ??????????} ??????} ????//鍵盤事件 ????document.onkeydown=function(event){ ????????event=event||window.event; ????????if(event.keyCode==40){ ????????????index++; ????????????if(index>as.length-1)index=0; ????????????for(var?i=0;i<as.length;i++){ ????????????????this.style.backgroundColor='#fff'; ????????????} ????????????as[index].style.backgroundColor='#ccc'; ????????} ????????if(event.keyCode==38){ ????????????index--; ????????????if(index<0)index=as.length-1; ????????????for(var?i=0;i<as.length;i++){ ????????????????this.style.backgroundColor='#fff'; ????????????} ????????????as[index].style.backgroundColor='#ccc'; ????????} ????????if(event.keyCode==13){ ??????????? ????????????????title.innerHTML=as[index].innerHTML; ????????????????menu.style.display='none'; ???????????? ????????} ????} ?????? ???//?點擊頁面空白處時 ???????//?執行腳本 ???????document.onclick=function(event){ ???????????event=event||window.event; ???????????menu.style.display='none'; ???????} ?} ???</script> </head> <body> ????<div?id="divselect"> ??????<cite>請選擇分類</cite> ??????<ul> ?????????<li?id="li"><a?href="javascript:;"?selectid="1">ASP開發</a></li> ?????????<li><a?href="javascript:;"?selectid="2">.NET開發</a></li> ?????????<li><a?href="javascript:;"?selectid="3">PHP開發</a></li> ?????????<li><a?href="javascript:;"?selectid="4">Javascript開發</a></li> ?????????<li><a?href="javascript:;"?selectid="5">Java特效</a></li> ??????</ul> ????</div> </body> </html>
2016-09-20
鍵盤事件里面的for循環中this指定的是document,不是當前的as[i]對象,老師說過好像不能對document設置backgroundColor,這里可以直接用a[i]來代替this
2016-09-14
應該是事件不同導致的吧!你用的是keyDown 老師課上用的是keyUp