不知道我的意思有没有表达清楚
我要实现两个功能
功能一  点击键盘->键打开的子菜单自动获得焦点功能二  当子菜单获得焦点后点ENTER能够打开一个URL连接

解决方案 »

  1.   

    else if(event.keyCode==39){
         var xxx = event.srcElement;
     if(xxx.id == "bb"){
        bbb.style.display = "block";
     }else if(xxx.id == "cc"){
        ccc.style.display = "block";
     }else if(xxx.id == "dd"){
        ddd.style.display = "block";
     }
      }
      把这个改成(还有你的选择一个后,再选下一个,之前那个也没消失,也帮你改了下,你的代码这样写有点不好):
    else if(event.keyCode==39){
         var xxx = event.srcElement;
     if(xxx.id == "bb"){
    ccc.style.display ="none";
    ddd.style.display ="none";
        bbb.style.display = "block";
    document.getElementById("bbb").getElementsByTagName("input")[0].select();
     }else if(xxx.id == "cc"){
    ddd.style.display ="none";
    bbb.style.display ="none";
        ccc.style.display = "block";
    document.getElementById("ccc").getElementsByTagName("input")[0].select();
     }else if(xxx.id == "dd"){
     ccc.style.display ="none";
    bbb.style.display ="none";
        ddd.style.display = "block";
    document.getElementById("ddd").getElementsByTagName("input")[0].select();
     }
      }
      

  2.   

    else if(event.keyCode==39){
         var xxx = event.srcElement;
     if(xxx.id == "bb"){
        bbb.style.display = "block";
    bbb.childNodes[0].focus();
     }else if(xxx.id == "cc"){
        ccc.style.display = "block";
    ccc.childNodes[0].focus();
     }else if(xxx.id == "dd"){
        ddd.style.display = "block";
    ccc.childNodes[0].focus();
     }
      }这样子菜单能自动获取焦点
      

  3.   

    <html>
    <head>
    <style type="text/css"><!--
    input {border:1px solid #fff; background:#fff; }
    input {star : expression(onmouseover=function(){this.style.backgroundColor="#eee"},
    onmouseout=function(){this.style.backgroundColor="#fff"})}
    .in40 {width:40px;}
    .in80 {width:80px;}
    .in120 {width:120px;}
    .in200 {width:200px;}
    -->
    </style>
    </head>
    <body>
    <script defer>
    var obj=document.getElementsByTagName("input");
            var urlpath = "";
    for(var i=0;i<obj.length;i++)
    if(obj[i].input)
    {
    obj[i].focus();
    break;
    }
    document.onkeydown=function()
    {
    try{
    //alert(event.keyCode);
    if(event.keyCode==13){
    //alert("现在访问URL");
    window.open();
    }
            //按esc键退出
           
    if(event.keycode == 27)
          window.closed();
    if(event.keyCode==40){
    event.srcElement.nextSibling.nextSibling.focus();}
    else if(event.keyCode==38){
    event.srcElement.previousSibling.previousSibling.focus();}     else if(event.keyCode==37){
     var xxx = event.srcElement;//event.srcElement就是指向触发事件的元素,他是什么就有什么的属性;srcElement 是事件初始目标的html元素对象引用,因为事件通过元素容器层次冒泡,可以在任一层进行处理,所以由一个属性指向产生初始事件的元素是很有帮助的.有了元素的引用,就可以读/写改元素的属性,并调用他的任何方法.
     showNone();
      
     if(xxx.parentElement.id == "bbb"){
        bb.focus();
     }else if(xxx.parentElement.id == "ccc"){
        cc.focus();
     }else if(xxx.parentElement.id == "ddd"){
        dd.focus();
     }
     
     }  else if(event.keyCode==39){
         var xxx = event.srcElement;
     if(xxx.id == "bb"){
        bbb.style.display = "block";
    bbb.childNodes[0].focus();
     }else if(xxx.id == "cc"){
        ccc.style.display = "block";
    ccc.childNodes[0].focus();
     }else if(xxx.id == "dd"){
        ddd.style.display = "block";
    ccc.childNodes[0].focus();
     }
      }}catch(e){}
    }function url(obj){
    urlpath =obj.value;
    //window.location.href=obj;
    //alert(obj.value);
    }
    function showNone(){
    bbb.style.display = "none";
    ccc.style.display = "none";
    ddd.style.display = "none";
    }
    </script>
    <table>
    <tr><td>
    <div id="aaa">
    <input type=text class="in200" value="http://www.google.com" onfocus="this.select();url(this)" size="40" id="bb"><br>
    <input type=text class="in80" value="菜单2" onfocus="this.select();url(this)" id="cc"><br>
    <input type=text class="in80" value="菜单3" onfocus="this.select();url(this)"  id="dd">
    </div>
    </td>
    <td>
    <div style="display:none " id="bbb"><input type=text class="in80" value="菜单4" onfocus=this.select() ><br>
    <input type=text class="in80" value="菜单5" onfocus=this.select() ><br>
    <input type=text class="in80" value="菜单6" onfocus=this.select() ></div>
    <div style="display:none " id="ccc"> 
    <input type=text class="in80" value="菜单7" onfocus=this.select() ><br>
    <input type=text class="in80" value="菜单8" onfocus=this.select() ><br>
    <input type=text class="in80" value="菜单9" onfocus=this.select() ></div> 
    <div style="display:none " id="ddd">
    <input type=text class="in80" value="菜单10" onfocus=this.select() ><br>
    <input type=text class="in80" value="菜单11" onfocus=this.select() ><br>
    <input type=text class="in80" value="菜单12" onfocus=this.select() ></div> </td></tr>
    </table>
    </body>
    </html>
      

  4.   

    <html>
    <head>
    <style type="text/css"><!--
    input {border:1px solid #fff; background:#fff; }
    input {star : expression(onmouseover=function(){this.style.backgroundColor="#eee"},
    onmouseout=function(){this.style.backgroundColor="#fff"})}
    .in40 {width:40px;}
    .in80 {width:80px;}
    .in120 {width:120px;}
    .in200 {width:200px;}
    -->
    </style>
    </head>
    <body>
    <script defer>
    var obj=document.getElementsByTagName("input");
            var urlpath = "";
    for(var i=0;i<obj.length;i++)
    if(obj[i].input)
    {
    obj[i].focus();
    break;
    }
    document.onkeydown=function()
    {
    try{
    //alert(event.keyCode);
    if(event.keyCode==13){
    //alert("现在访问URL");
    window.open();
    }
            //按esc键退出
           
    if(event.keycode == 27)
          window.closed();
    if(event.keyCode==40){
    event.srcElement.nextSibling.nextSibling.focus();}
    else if(event.keyCode==38){
    event.srcElement.previousSibling.previousSibling.focus();}     else if(event.keyCode==37){
     var xxx = event.srcElement;//event.srcElement就是指向触发事件的元素,他是什么就有什么的属性;srcElement 是事件初始目标的html元素对象引用,因为事件通过元素容器层次冒泡,可以在任一层进行处理,所以由一个属性指向产生初始事件的元素是很有帮助的.有了元素的引用,就可以读/写改元素的属性,并调用他的任何方法.
     showNone();
      
     if(xxx.parentElement.id == "bbb"){
        bb.focus();
     }else if(xxx.parentElement.id == "ccc"){
        cc.focus();
     }else if(xxx.parentElement.id == "ddd"){
        dd.focus();
     }
     
     }  else if(event.keyCode==39){
         var xxx = event.srcElement;
     if(xxx.id == "bb"){
        bbb.style.display = "block";
    bbb.childNodes[0].focus();
     }else if(xxx.id == "cc"){
        ccc.style.display = "block";
    ccc.childNodes[0].focus();
     }else if(xxx.id == "dd"){
        ddd.style.display = "block";
    ddd.childNodes[0].focus();
     }
      }}catch(e){}
    }function url(obj){
    urlpath =obj.value;
    //window.location.href=obj;
    //alert(obj.value);
    }
    function showNone(){
    bbb.style.display = "none";
    ccc.style.display = "none";
    ddd.style.display = "none";
    }
    </script>
    <table>
    <tr><td>
    <div id="aaa">
    <input type=text class="in200" value="http://www.google.com" onfocus="this.select();url(this)" size="40" id="bb"><br>
    <input type=text class="in80" value="菜单2" onfocus="this.select();url(this)" id="cc"><br>
    <input type=text class="in80" value="菜单3" onfocus="this.select();url(this)"  id="dd">
    </div>
    </td>
    <td>
    <div style="display:none " id="bbb"><input type=text class="in80" value="菜单4" onfocus=this.select() ><br>
    <input type=text class="in80" value="菜单5" onfocus=this.select() ><br>
    <input type=text class="in80" value="菜单6" onfocus=this.select() ></div>
    <div style="display:none " id="ccc"> 
    <input type=text class="in80" value="菜单7" onfocus=this.select() ><br>
    <input type=text class="in80" value="菜单8" onfocus=this.select() ><br>
    <input type=text class="in80" value="菜单9" onfocus=this.select() ></div> 
    <div style="display:none " id="ddd">
    <input type=text class="in80" value="菜单10" onfocus=this.select() ><br>
    <input type=text class="in80" value="菜单11" onfocus=this.select() ><br>
    <input type=text class="in80" value="菜单12" onfocus=this.select() ></div> </td></tr>
    </table>
    </body>
    </html>
      

  5.   

    谢谢你!!!mbx615(白天鬼混挣钱,晚上挣钱鬼混) 
    你到我另一个贴上再说句话
    那里还有一百分也赠给你 太感谢你了
    你强
    http://community.csdn.net/Expert/topic/5742/5742097.xml?temp=.5009882
      

  6.   

    大致上帮你改了下代码,有些名字改了,有利于写js代码
    <html>
    <head>
    <style type="text/css"><!--
    input {border:1px solid #fff; background:#fff; }
    input {star : expression(onmouseover=function(){this.style.backgroundColor="#eee"},
    onmouseout=function(){this.style.backgroundColor="#fff"})}
    .in40 {width:40px;}
    .in80 {width:80px;}
    .in120 {width:120px;}
    .in200 {width:200px;}
    -->
    </style>
    </head>
    <body>
    <script defer>
    var obj=document.getElementsByTagName("input");
            var urlpath = "";
    for(var i=0;i<obj.length;i++)
    if(obj[i].input)
    {
    obj[i].focus();
    break;
    }
    document.onkeydown=function()
    {
    try{
    //alert(event.keyCode);
    if(event.keyCode==13){
    //alert("现在访问URL");
    window.open();
    }
            //按esc键退出
           
    if(event.keycode == 27)
          window.closed();
    if(event.keyCode==40){
    event.srcElement.nextSibling.nextSibling.focus();
    showNone();
    }
    else if(event.keyCode==38){
    event.srcElement.previousSibling.previousSibling.focus();
    showNone();
    }     else if(event.keyCode==37){
          var xxx = event.srcElement;
      if(xxx.parentNode.id.indexOf("F")){
    document.getElementById(xxx.parentNode.id).style.display="none";
    }
     }  else if(event.keyCode==39){
         var xxx = event.srcElement;
    document.getElementById(xxx.id+"F").style.display="block";
    document.getElementById(xxx.id+"F").getElementsByTagName("input")[0].select();
      }}catch(e){}
    }function url(obj){
    urlpath =obj.value;
    }
    function showNone(){
    bbb.style.display = "none";
    ccc.style.display = "none";
    ddd.style.display = "none";
    }
    </script>
    <table>
    <tr><td>
    <div id="aaa">
    <input type=text class="in200" value="http://www.google.com" onfocus="this.select();url(this)" size="40" id="bb"><br/>
    <input type=text class="in80" value="菜单2" onfocus="this.select();url(this)" id="cc"><br/>
    <input type=text class="in80" value="菜单3" onfocus="this.select();url(this)"  id="dd">
    </div>
    </td>
    <td>
    <div style="display:none " id="bbF"><input type=text class="in80" value="菜单4" onfocus=this.select() ><br/>
    <input type=text class="in80" value="菜单5" onfocus=this.select() ><br/>
    <input type=text class="in80" value="菜单6" onfocus=this.select() ></div>
    <div style="display:none " id="ccF" > 
    <input type=text class="in80" value="菜单7" onfocus=this.select() ><br/>
    <input type=text class="in80" value="菜单8" onfocus=this.select() ><br/>
    <input type=text class="in80" value="菜单9" onfocus=this.select() ></div> 
    <div style="display:none " id="ddF">
    <input type=text class="in80" value="菜单10" onfocus=this.select() ><br/>
    <input type=text class="in80" value="菜单11" onfocus=this.select() ><br/>
    <input type=text class="in80" value="菜单12" onfocus=this.select() ></div> 
    </td></tr>
    </table>
    </body>
    </html>
      

  7.   

    <script language="JavaScript">
    document.onkeydown=function(){    
    if(event.srcElement.tagName=="INPUT"){
    if(event.keyCode==40){
    if(event.srcElement.nextSibling!=null){
    event.srcElement.nextSibling.nextSibling.focus();
    }
    else{
    event.srcElement.parentNode.firstChild.focus();
    }
    }
    else if(event.keyCode==38){
    if(event.srcElement.previousSibling!=null){
    event.srcElement.previousSibling.previousSibling.focus();
    }
    else{
    event.srcElement.parentNode.lastChild.focus();
    }
    }
    else if(event.keyCode==39){
    if(event.srcElement.id=="bb"){
    bbb.style.display="";
    bbb.firstChild.focus();
    }
    else if(event.srcElement.id=="cc"){
    ccc.style.display="";
    ccc.firstChild.focus();
    }
    else if(event.srcElement.id=="dd"){
    ddd.style.display="";
    ddd.firstChild.focus();
    }
    }
    else if(event.keyCode==37){
    var xxx = event.srcElement;
    bbb.style.display = "none";
    ccc.style.display = "none";
    ddd.style.display = "none";
    if(xxx.parentElement.id == "bbb"){
    bb.focus();
    }
    else if(xxx.parentElement.id == "ccc"){
    cc.focus();
    }
    else if(xxx.parentElement.id == "ddd"){
    dd.focus();
    }
    }
    }
    }
    </script>
    改了名字会更简练