javascript - 悬停在父文本上的下拉菜单

标签 javascript jquery html

以下是基本的工作下拉菜单,子级出现在父级悬停时。

<script type="text/javascript">
  $(document).ready(function () { 
    $('#nav li').hover(
      function () {
      //show its submenu
        $('ul', this).stop().slideDown(100);
      }, 
      function () {
      //hide its submenu
        $('ul', this).stop().slideUp(100); 
      }
    );
  });
</script>

<style type="text/css">
  #nav li {background-color:#CCC; }
</style>

<ul id="nav">
  <li><a href="#" class="selected">Parent A</a>
    <ul>
      <li><a href="#">Item a1</a></li>
      <li><a href="#" class="selected">Item a2</a></li>
      <li><a href="#">Item a3</a></li>
    </ul>
  </li>
  <li><a href="#">Parent B</a>
    <ul>
      <li><a href="#">Item b1</a></li>
      <li><a href="#">Item b2</a></li>
      <li><a href="#">Item b3</a></li>
      <li><a href="#">Item b4</a></li>
    </ul> 
  </li>
</ul>

目前,当悬停在父框区域的任何位置时(即也在文本之外,在父 div 的不可见区域),子项会出现。

我希望子链接仅在父链接悬停时出现(仅在“href”文本上)。

我在任何地方都找不到答案。

最佳答案

尝试使用 a 元素作为 hover 的目标而不是整个 li,如下所示:

<script type="text/javascript">
  $(document).ready(function () { 
    $('#nav ul').hide();

    $('#nav li > a').hover(
      function () {
      //show its submenu
        $('ul', this.parentNode).stop().slideDown(100);
      }
    );
   $('#nav li').hover(null, 
      function (e) {
      //hide its submenu
        $('ul', this.parentNode).stop().slideUp(100); 
      }
   );
  });
</script>

查看工作 demo .

关于javascript - 悬停在父文本上的下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13804909/

相关文章:

javascript - 为什么 HTML 按钮的“属性”窗口中没有“事件”按钮?

javascript - 根据特定键随机化 JavaScript 对象数组

javascript - 存储范围值,以便进行比较

javascript - 如何使用lodash从 map 中删除键值对

javascript - 如何在文件上传控件中选择默认文件夹位置?

javascript - html + 从系统获取日期的变量

javascript - 在数组 Javascript 中搜索字符串

javascript - 返回第一次出现的正则表达式不匹配

jquery - Dropzone 配置不起作用 + 'Dropzone already attached' 错误

javascript - play() 请求被 pause() 调用中断