使用键盘箭头和 "enter"键的导航菜单的 Javascript

标签 javascript jquery html css

在此代码中,我将鼠标悬停用于菜单,但现在我想使用键盘键和回车键来导航此菜单。我想使用 tab 键导航这个菜单,在主菜单上按 enter 子菜单应该展开,并且应该使用向上和向下箭头键导航这个子菜单

   <!DOCTYPE html>
    <html>
    <head>
    <style>
    #menu {
    width: 608px;
    margin-top: 0px;
    margin-right: auto;
    margin-bottom: 0px;
    margin-left: auto;
    padding-top: 0px;
    padding-right: 0px;
    padding-bottom: 0px;
    padding-left: 0px;   
  }

    #menu ul {
    margin: 0px;
    padding: 0px;
   }

  #menu ul li {
  background-color: #666;
   float: left;
   border: 1px solid #CCC;
   position: relative;
   list-style-type: none;
  }

   #menu ul li:hover ul {
   visibility: visible;
  background-color: #333;
  }

   #menu ul li a {
   font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
   font-size: 14px;
   line-height: 30px;
   color: #FFF;
   text-decoration: none;
   text-align: center;
   display: block;
   height: 30px;
   width: 150px;
   }

   #menu ul ul  {
   position: absolute;
   visibility: hidden;
   left: -1px;
   top: 31px;
   }

   #menu ul li:hover {
   background-color: #333;
   }

   #menu ul li ul li a:hover {
    background-color: #069;
      }

     #menu ul li a:hover {
       color: #0FF;
       }

   #leftmenu {
   position: absolute;
   left: 165px;
   top: 20px; 
   }

  #rightmenu {
  position: absolute;
  right: 164px;
  top: 20px;
  }
  </style>

  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
   <script>


   </script>
   </head>
   <body>


     <div id="menu">
     <ul id='leftmenu'>
       <li><a href="#" rel="submenu1">BOAT</a>
          <div id="submenu1">
     <ul>
       <li><a href='#'>Specs & Boat Plans</a></li>
       <li><a href='#'>Itineraries</a></li>
       <li><a href='#'>Exteriors</a></li>
       <li><a href='#'>Diving & Water Toys</a></li>
     </ul>
     </div>
     </li>
   </ul>
  <ul id='rightmenu'>
   <li><a href="#" rel="submenu2">LIFE ON BOARD</a>
     <ul>
        <div id="submenu2">
       <li><a href='#'>Itineraries</a></li>
       <li><a href='#'>Dining</a></li>
       <li><a href='#'>Family Fun</a></li>
       <li><a href="#">Lifelong Learning</a></li>
       <li><a href="#">The Crew</a></li>
       </ul>
  </div>
    </li>
   </ul>
 </div>
 </body>
  </html>

最佳答案

您必须绑定(bind) keydown 事件并处理来自该事件的 keyCode。 根据事件键码,您必须触发点击或执行操作。

$(document).on('keydown', function(event){ 
                 // if You want to bind arrow keys only on menu 
                 // change document to selector of menu.
if  (event.keyCode === xx) {           
                   /* in place of xx arrow or enter code  
                  FULL LIST HERE: http://www.javascripter.net/faq/keycodes.htm */
      $('#selector for next or previous element here').trigger('click');
   } else if (event.keyCode === yy) {
       //   do something else
   } //etc...
});

关于使用键盘箭头和 "enter"键的导航菜单的 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23882331/

相关文章:

html - 如何在 ReactJS 中对 HTML 表格进行排序

javascript - 如何将 json 字符串中的某些文本设为粗体?

javascript - 更改 AJAX 数据表的当前页面

javascript - Google map 融合表 API SQL "LIKE"命令不起作用

javascript - jquery ajax 表单提交与 twitter bootstrap 模式

jQuery从不同页面滚动到ID

php - 在 Chrome 中调试以查找创建特定 HTML 的 PHP 文件

javascript - 按回车键时如何停止 contentEditable ="true"插入 <div> 而不是 <p>?

javascript - jquery preventDefault on alert,如果 alert = ok,则发送

javascript - 从数据库 IP 为每个用户位置绘制标记