Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 关于鼠标盖<;李>;显示Div,但如果鼠标悬停在另一个li上,则隐藏Div并正确显示_Javascript_Jquery_Html - Fatal编程技术网

Javascript 关于鼠标盖<;李>;显示Div,但如果鼠标悬停在另一个li上,则隐藏Div并正确显示

Javascript 关于鼠标盖<;李>;显示Div,但如果鼠标悬停在另一个li上,则隐藏Div并正确显示,javascript,jquery,html,Javascript,Jquery,Html,我正试着和你们一起完成我正在制作的超大菜单, 在另一个问题中,当鼠标滑过: 我试图实现的是,当我将鼠标悬停在一个li元素上时,我希望显示与其相关的div,但当我将鼠标悬停在上面时,它必须保持在那里(以便用户可以导航到它),而如果我将鼠标悬停在另一个li元素上,它将隐藏上一个元素并显示其相关的div。 我使用的jQuery: $('#menu-left li').hover( function() { $("#" + $(this).data("menu")).show(); },

我正试着和你们一起完成我正在制作的超大菜单,
在另一个问题中,当鼠标滑过

  • 我试图实现的是,当我将鼠标悬停在一个li元素上时,我希望显示与其相关的div,但当我将鼠标悬停在上面时,它必须保持在那里(以便用户可以导航到它),而如果我将鼠标悬停在另一个li元素上,它将隐藏上一个元素并显示其相关的div。
    我使用的jQuery:

    $('#menu-left li').hover(
      function() {
        $("#" + $(this).data("menu")).show();
      },
      function() {
        $("#" + $(this).data("menu")).hide();
      }
    );  
    
    Html:

    
    菜单
    
    链接1 链接2 链接3 链接4 链接5 链接6 链接7 链接8 链接9 链接10
    这就是你想要的吗?相反,将函数绑定到悬停事件,您需要将其绑定到鼠标悬停事件,这样,如果您将鼠标移出一个“li”,内容不会消失,只有在您输入另一个“li”时内容才会改变


    您的代码中有一个小问题。当使用jQuery选择器$(“#menu left li”)时,您不应该忘记,这里您试图通过一次调用选择多个DOM li元素。因此,您必须循环浏览它们,以便能够将您想要的效果应用于其中的每一个。 如果理解了这一点,工作代码应如下所示:

    $('#menu-left li').each(function(i,e){
        $(e).hover(
          function() {
            $("#" + $(this).data("menu")).show();
          },
          function() {
            $("#" + $(this).data("menu")).hide();
          }
       );
    });
    

    另外,不要忘记在默认情况下将div元素的“display”CSS属性预先设置为“none”。

    就是这样!我试过用兄弟姐妹,但用错了。谢谢,没问题。很高兴能帮上忙。为什么不<代码>$(“#”+$(this.data(“菜单”)).show().sides().hide()
    $('#menu-left li').on("mouseover", function() {
         $("#" + $(this).data("menu")).show();
         $("#" + $(this).data("menu")).siblings().hide();
    });
    
    $('#menu-left li').each(function(i,e){
        $(e).hover(
          function() {
            $("#" + $(this).data("menu")).show();
          },
          function() {
            $("#" + $(this).data("menu")).hide();
          }
       );
    });