需要有关 JQuery 鼠标悬停在带有子菜单的菜单上的帮助

发布于 2024-11-05 01:50:37 字数 425 浏览 2 评论 0原文

我有这个菜单(@ jsFiddle),如果发生以下鼠标事件,则会发生这种情况:

  1. 悬停在 电影
  2. 然后开始将鼠标拖动到电影库上,
  3. 在拖动过程中,您不小心触摸了Home菜单项
  4. ,导致Home子菜单显示并隐藏Movies 子菜单。

这不是我想要的效果。所以我正在寻求一些帮助。我该如何解决这个问题,以便如果我拖动鼠标并且不小心触摸了其他一些菜单选项,JavaScript 将足够聪明,知道它不应该隐藏所选的子菜单。

我可以在悬停时添加某种延迟吗?感谢所有帮助!

I have this menu (@ jsFiddle) where this will happen given the following mouse events:

  1. Hover on Movies
  2. Then start dragging mouse to mouseover on Movie library
  3. While dragging you accidentally touch the Home menu item
  4. Causing the Home submenu to appear and hiding the Movies submenu.

This is not the desired effect i want. So im seeking some assistance. How can i solve this so that if im dragging my mouse and i accidentally touch some of the other menu options, the javascript will be smart enough to know that it shouldn't hide the selected submenu.

Can i add some kind of delay on the hover? All help is appreciated!

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

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

发布评论

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

评论(3

浅暮の光 2024-11-12 01:50:37

您可以使用 hoverIntent 来限制 mousein/mouseouts 事件以防止意外触发(您需要我认为这个...)。检查 hiverIntent 网站上的示例。你会喜欢的。

You can use hoverIntent to throttle mousein/mouseouts events to prevent accidential firing (you need this I think...). Check examples on hiverIntent's site. You'll like it.

佞臣 2024-11-12 01:50:37

我认为这个插件完全适合您想要做的事情: http://cherne.net/布莱恩/资源/jquery.hoverIntent.html

I think this plugin fits exactly for what you want to do : http://cherne.net/brian/resources/jquery.hoverIntent.html

如果没有 2024-11-12 01:50:37

我希望这就是你想要的。如果没有,我相信它会引导您找到最终的解决方案

$().ready(function(){
    $('ul.menu').hover(function(event){       
        var hoverItem = event.target;
        //hide other ul's submenu
        $(hoverItem).siblings('li').children('ul').stop(true,true).hide()
        //show current submenu
        $(hoverItem).children('ul').stop(true,true).fadeIn()
    },function(event){
        //console.log(event.target);
        $('ul.menu li').children('ul').stop(true,true).delay(1500).fadeOut()
    })
});

希望对您有所帮助。干杯

I hope this is what you want. If not, i'm sure it will guide you to the final solution

$().ready(function(){
    $('ul.menu').hover(function(event){       
        var hoverItem = event.target;
        //hide other ul's submenu
        $(hoverItem).siblings('li').children('ul').stop(true,true).hide()
        //show current submenu
        $(hoverItem).children('ul').stop(true,true).fadeIn()
    },function(event){
        //console.log(event.target);
        $('ul.menu li').children('ul').stop(true,true).delay(1500).fadeOut()
    })
});

Hope to have helped you. Cheers

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文