如何解決鼠標(biāo)和鍵盤沖突的問題?
<!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; ????????menu.style.display='block' ????????if(event.stopPropagation){ ????????event.stopPropagation(); ??????}else{ ??????????event.cancelBubble=true; ??????} ??????//?執(zhí)行腳本 ??????document.onkeydown=function(event){ ????????if?(event.keyCode==40)?{ ??????????if?(index>=as.length)?{ ????????????index=0; ??????????}else{ ????????????index++; ??????????} ??????????for(var?i=0;i<as.length;i++){ ??????????????as[i].style.background='#fff'; ????????????} ???????????as[index].style.background='#ccc'; ????????} ????????if?(event.keyCode==38){ ??????????if?(index<=0)?{ ????????????index=as.length-1; ??????????}else{ ????????????index--; ??????????} ????????????for(var?i=0;i<as.length;i++){ ??????????????as[i].style.background='#fff'; ????????????} ???????????as[index].style.background='#ccc'; ????????} ????????if(event.keyCode==13){ ??????????if(index>=0&&index<=as.length){ ????????????title.innerHTML=as[index].innerHTML; ????????????for(var?i=0;i<as.length;i++){ ??????????????as[i].style.background='#fff'; ????????????} ????????????index=-1; ????????????menu.style.display='none'; ???????????}? ????????} ??????} ????}?? ???? ???//?滑過滑過、離開、點擊每個選項時 ??????for(var?i=0;i<as.length;i++){ ????????as[i].onmouseover=function(){ ??????????this.style.background='#ccc'; ????????} ????????as[i].onmouseout=function(){ ??????????this.style.background='#fff'; ????????} ????????as[i].onclick=function(event){ ??????????title.innerHTML=this.innerHTML; ??????????event.stopPropagation(); ??????????menu.style.display='none'; ????????} ??????} ??????//?執(zhí)行腳本 ???//?點擊頁面空白處時 ???document.onclick=function(){ ???????menu.style.display='none' ???} ???????//?執(zhí)行腳本 ?} ???</script> </head> <body> <div?id="divselect"> ??????<cite>請選擇分類</cite> ??????<ul> ?????????<li?id="li"><a?href="javascript:;"?selectid="1">ASP開發(fā)</a></li> ?????????<li><a?href="javascript:;"?selectid="2">.NET開發(fā)</a></li> ?????????<li><a?href="javascript:;"?selectid="3">PHP開發(fā)</a></li> ?????????<li><a?href="javascript:;"?selectid="4">Javascript開發(fā)</a></li> ?????????<li><a?href="javascript:;"?selectid="5">Java特效</a></li> ??????</ul> ????</div> </body> </html>
先用鍵盤選擇一個,后用鼠標(biāo)劃過一個,如果兩個選得不一樣,會出現(xiàn)兩個選項,請問怎么解決?
2016-08-26
先用鍵盤選擇一個,后用鼠標(biāo)劃過一個,如果兩個選得不一樣,怎樣解決的呢?? 謝謝!
2016-05-12
已經(jīng)解決:40行 改為if?(index>=as.length-1)
但是,怎么把這個問題刪掉啊。。。。?