jquery hover li>ul - 保持可见,直到从子 UL 中移除鼠标

发布于 2024-09-09 06:15:36 字数 746 浏览 3 评论 0原文

代码:

        $("ul.menu_body li:even").addClass("alt");
        $('li a.menu_head').hover(function () {
            $('ul.menu_body').slideToggle('medium');
        },
            function(){
        $('ul.menu_body').slideToggle('medium');
            });

在网上找到了这段代码,原来是“li a.menu_head”上的点击事件,用于显示和隐藏“ul.menu_body”。

点击效果很好。我更喜欢悬停效果。

不幸的是,只要您将鼠标从原始 LI 上移开,我的代码就会立即隐藏 UL。我怎样才能调整这个,以便“ul.menu_body”保持可见,直到鼠标离开 UL,而不仅仅是“li a.menu_head”。

谢谢。

我的html是

   <li> <a href="#" class="menu_head"></a>
      <ul class="menu_body">
        <li>content</li>
        <li>content</li>
      </ul>
   </li>

Code:

        $("ul.menu_body li:even").addClass("alt");
        $('li a.menu_head').hover(function () {
            $('ul.menu_body').slideToggle('medium');
        },
            function(){
        $('ul.menu_body').slideToggle('medium');
            });

found this code somewhere on the web, originally it was a click event on "li a.menu_head" to show and hide "ul.menu_body".

the click works fine. I'd prefer a hover effect.

unfortunately my code instantly hides the UL as soon as you move the mouse off of the original LI. How could I adjust this so that the "ul.menu_body" remains visible until the mouse is off of the UL, instead of just "li a.menu_head".

thanks.

my html is

   <li> <a href="#" class="menu_head"></a>
      <ul class="menu_body">
        <li>content</li>
        <li>content</li>
      </ul>
   </li>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

你曾走过我的故事 2024-09-16 06:15:36

你可以尝试

    $('li a.menu_head').mouseenter(function () {
        $('ul.menu_body').slideDown('medium');
    });
    $('ul.main_UL_class_here').mouseleave(function(){
    $('ul.menu_body').slideUp('medium');
        });

You can try

    $('li a.menu_head').mouseenter(function () {
        $('ul.menu_body').slideDown('medium');
    });
    $('ul.main_UL_class_here').mouseleave(function(){
    $('ul.menu_body').slideUp('medium');
        });
风情万种。 2024-09-16 06:15:36
    $('li a.menu_head').hover(function () {
        $('ul.menu_body').show()
    });

    $('ul.menu_body').hover(function () {

    },
    function(){
        $('ul.menu_body').hide();
   });

进行了更多的尝试和错误,似乎做到了。不确定“blanK”功能是否正确。

    $('li a.menu_head').hover(function () {
        $('ul.menu_body').show()
    });

    $('ul.menu_body').hover(function () {

    },
    function(){
        $('ul.menu_body').hide();
   });

a bit more trial and error and appears to do it..not sure if having a "blanK" function is correct tho.

哆兒滾 2024-09-16 06:15:36

问题是你正在使用悬停,尝试这样

$(document).ready(function() { 
    $("ul.menu_body li:even").addClass("alt");
    $('ul.menu_body').slideToggle('medium');

    $('li a.menu_head').bind('mouseenter', function () {
        $('ul.menu_body').slideDown('medium');
    });
    $('.menu_body').bind('mouseleave', function(){
        $('ul.menu_body').slideUp('medium');
    });
});

The problem is you are using hover, try it this way

$(document).ready(function() { 
    $("ul.menu_body li:even").addClass("alt");
    $('ul.menu_body').slideToggle('medium');

    $('li a.menu_head').bind('mouseenter', function () {
        $('ul.menu_body').slideDown('medium');
    });
    $('.menu_body').bind('mouseleave', function(){
        $('ul.menu_body').slideUp('medium');
    });
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文