求大神指導(dǎo)為什么,阻止不了上下鍵同時(shí)滾動(dòng)頁(yè)面事件,已加上阻止語(yǔ)句,跪謝!
<!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;
? ? // 點(diǎn)擊三角時(shí)
? ? title.onclick=function(event){
? ? ?event=event || window.event;
? ? ?if(event.stopPropagation){
? ? ?event.stopPropagation();
? ? ?}else{
? ? ?event.cancelBubble=true;
? ? ?}
? ? ?menu.style.display='block';
? ? ? ? document.onkeyup=function(e){
? ? ? ? ? e=e || window.event;
? ? ? ? ?
? ? ? ? ? for(var i=0;i<as.length;i++){
? ? ? ? ? ? as[i].style.background='none';
? ? ? ? ? }
? ? ? ? ? // 如果按下了向下方向鍵
? ? ? ? ? if(e.keyCode==40){
? ? ? ? ? ? ? e.preventDefault ? e.preventDefault() : e.returnValue = false;
? ? ? ? ? ? ?index++;
? ? ? ? ? ? ?if(index>=as.length){
? ? ? ? ? ? ? ?index=0;
? ? ? ? ? ? ?}
? ? ? ? ? ? ?as[index].style.background="#ccc";
? ? ? ? ? }
? ? ? ? ? // 如果按下了向上方向鍵
? ? ? ? ? if(e.keyCode==38){
? ? ? ? ? ? ?e.preventDefault ? e.preventDefault() : e.returnValue = false;
? ? ? ? ? ? ?if(index<=0){
? ? ? ? ? ? ? ?index=as.length;
? ? ? ? ? ? ?}
? ? ? ? ? ? ?index--; ??
? ? ? ? ? ? ?as[index].style.background="#ccc"; ? ? ?
? ? ? ? ? }
? ? ? ? ? // 如果按下了回車(chē)鍵
? ? ? ? ? if(e.keyCode==13 && index!=-1){
? ? ? ? ? ? title.innerHTML=as[index].innerHTML;
? ? ? ? ? ? for(var i=0;i<as.length;i++){
? ? ? ? ? ? ? as[i].style.background='none';
? ? ? ? ? ? }
? ? ? ? ? ? menu.style.display='none';
? ? ? ? ? ? index=-1; ? ?
? ? ? ? ? }
? ? ? ? }
} ?
? ? // 滑過(guò)滑過(guò)、離開(kāi)、點(diǎn)擊每個(gè)選項(xiàng)時(shí)
? ? for(var i=0;i<as.length;i++){
? ? ?as[i].onmouseover=function(){
? ? ?this.style.background='#ccc';
? ? ? ? index=this.getAttribute("selectid")-1;
? ? ?}
? ? ?as[i].onmouseout=function(){
? ? ?this.style.background='none';
? ? ? ? index=-1;
? ? ?} ? ?
? ? ?as[i].onclick=function(){
? ? ?title.innerHTML=this.innerHTML;
? ? ? ? ?for(var i=0;i<as.length;i++){
? ? ? ? ? ? ? as[i].style.background='none';
? ? ? ? ? ? }
? ? ? ? ??
? ? ? ? ? ? index=-1; ? ?
? ? ?}
? ? }
? ??
? ? // 點(diǎn)擊頁(yè)面空白處時(shí)
? ? document.onclick=function(){
? ? ? menu.style.display='none';
? ? ? ?for(var i=0;i<as.length;i++){
? ? ? ? ? ? ? as[i].style.background='none';
? ? ? ? ? ? }
? ? ? ? ??
? ? ? ? ? ? index=-1; ? ?
? ? }
}
? ?</script>
</head>
<body>
<div id="divselect">
? ? ? <cite>請(qǐng)選擇分類(lèi)</cite>
? ? ? <ul>
? ? ? ? ?<li id="li"><a href="javascript:;" selectid="1">ASP開(kāi)發(fā)</a></li>
? ? ? ? ?<li><a href="javascript:;" selectid="2">.NET開(kāi)發(fā)</a></li>
? ? ? ? ?<li><a href="javascript:;" selectid="3">PHP開(kāi)發(fā)</a></li>
? ? ? ? ?<li><a href="javascript:;" selectid="4">Javascript開(kāi)發(fā)</a></li>
? ? ? ? ?<li><a href="javascript:;" selectid="5">Java特效</a></li>
? ? ? </ul>
? ? </div>
</body>
</html>
2015-10-24
我覺(jué)得是這里有問(wèn)題
?if(e.keyCode==38){
? ? ? ? ? ? ?e.preventDefault ? e.preventDefault() : e.returnValue = false;
這個(gè)方法阻止的是特定事件的默認(rèn)行為,這里要阻止事件的話(huà)難道不是比如keypress 或者keydown之類(lèi)的事件嗎,keyCode只是一個(gè)屬性,并不是鍵盤(pán)的事件。
我是這樣認(rèn)為的,雖然不知道對(duì)不對(duì)。