javascript - 在同一个导航栏中有两个下拉菜单

标签 javascript jquery html css

正如我在问题标题中所说,我创建了一个带有两个下拉框的导航栏。问题是当我试图用悬停打开一个菜单时(它只与一个下拉框完美配合),第二个菜单同时打开。这是我创建的脚本。任何建议都会很高兴地被接受!

<script>
$(document).ready(function () {
    $(".dropdown").hover(
      function () {
    $("ul.dropdown-menu").slideDown("medium").stop(true,true);
      }, 
      function () {
    $("ul.dropdown-menu").slideUp("medium").stop(true,true);
      }  
    );
});
</script>

最佳答案

这是因为 $("ul.dropdown-menu") 是所有属于 dropdown-menu< 类的 ul 元素的 jQuery 对象表示$(".dropdown") 也是如此。

您可以使用 each()来解决这个问题。

Iterate over a jQuery object, executing a function for each matched element.

在回调函数中,使用$(this)访问每个jQuery对象和:eq获取 $("ul.dropdown-menu") 的第 n 个对象(它是从 0 开始的,所以第一个对象是 :eq(0))。 .

var a =0;
$(".dropdown").each(function(){
   var b = a;
   $(this).hover(function () {
      $("ul.dropdown-menu:eq("+b+")").slideDown("medium").stop(true,true);
   }, function() {
      $("ul.dropdown-menu:eq("+b+")").slideUp("medium").stop(true,true);
   });
   a++;
});

关于javascript - 在同一个导航栏中有两个下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22694949/

相关文章:

javascript - 减少 Ractive.js 中的代码重复

javascript - 如何更新 D3 中的 TreeMap

javascript - 拖放并计算宽度

javascript - lodash 数组 _includes

jQuery CSS 范围

javascript - HTML 样式 ="overflow:hidden"使用 JavaScript/jQuery 访问内部溢出的元素?

jquery load 不执行任何操作,没有控制台错误

jquery - 寻找类似于暴雪的 jQuery 轮播

jquery - Bootstrap 4 Carousel 一次多帧并逐一滑动

javascript - 通过下拉菜单选择时如何添加图片事件?