javascript - 导航栏上的 Jquery 下拉菜单不起作用

标签 javascript jquery css

我有以下下拉代码:

$(document).ready(function(){
    $(".dropbtn").hover(function(){
        $(".dropdown-content").slideDown("fast");
    });
    $(".dropdown").mouseout(function(){
        $(".dropdown-content").slideUp("fast");
    });
});
.dropdown-content {
   display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li class="dropdown">
<a href="javascript:void(0)" class="dropbtn">##</a>
  <div class="dropdown-content">
    <a href="#">##</a>
    <a href="#">##</a>
  </div>
</li>
</ul>

但是当我将鼠标悬停在下拉内容上时,它会收缩,就好像下拉内容不是 li 类“下拉列表”的一部分,在 jquery 中从中触发滑动。我怎样才能使下拉内容仅在鼠标离开导航元素或下拉内容时向上滑动?

最佳答案

如果您添加一个容器,您可以确保事件只针对整个元素触发。此外,使用 mouseleave 也可以防止子元素触发事件。

$(document).ready(function() {
  $(".container").mouseover(function() {
    $(".dropdown-content").slideDown("fast");
  });
  $(".container").mouseleave(function() {
    $(".dropdown-content").slideUp("fast");
  });
});
.dropdown-content {
  display: none;
}

.container {
  background: #eee;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
  <li class="dropdown">
    <div class="container">
      <a href="javascript:void(0)" class="dropbtn">##</a>
      <div class="dropdown-content">
        <a href="#">##</a>
        <a href="#">##</a>
      </div>
    </div>
  </li>
</ul>

关于javascript - 导航栏上的 Jquery 下拉菜单不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42800391/

相关文章:

javascript - 如何更改我的 node.js 计算器的颜色和外观?

css - 使用通用前缀/后缀简化逗号分隔的 CSS 选择器

javascript - Bootstrap 弹出窗口更新内容

javascript - Jquery 菜单移位/重叠 div 部分图像

javascript - 仅以可见形式发送数据

jquery - 在没有嵌套 ul 的情况下向某些 li 添加 css 样式

html - 创建固定填充

javascript - 关闭 Bootstrap 模式将调整我的页面大小

javascript - 重复 XMLHttpRequest 请求

javascript - 与父元素一起滚动固定元素的内容