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



<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")是类ul的所有dropdown-menu元素的jQuery对象表示形式。 $(".dropdown")也是如此。

您可以使用each()解决此问题。


  遍历jQuery对象,为每个匹配的对象执行一个函数
  元件。


在回调函数中,使用$(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++;
});

10-05 20:41
查看更多