如何检测鼠标在jQuery中的子元素上?

netdjw

我在HTML中有一个menu-submenu-subsubmenu构造,如下所示:

<menu>
    <li><a href="...">Item 1</a></li>
    <li><ul>
            <li><a href="...">Subitem 1</a></li>
            <li><a href="...">Subitem 2</a></li>
            <li><ul>
                    <li><a href="...">Sub-subitem 1</a></li>
                    <li><a href="...">Sub-subitem 2</a></li>
                    <li><a href="...">Sub-subitem 3</a></li>
                </ul>
                <a href="...">Subitem 3</a></li>
            <li><a href="...">Subitem 4</a></li>
        </ul>
        <a href="...">Item 2</a>
    </li>
    <li><a href="...">Item 3</a></li>
    <li><a href="...">Item 4</a></li>

...使用这种CSS格式:

menu {
    display: block;
    width: 200px;
}
/* hide subitems */
menu li ul,
menu li ul li ul {
    display: none;
    position: absolute;
}
/* set up positions */
menu li ul {
    left: 200px;
    width: 200px;
}
menu li ul li ul {
    left: 400px;
    width: 200px;
}

我使用以下jQuery代码:

$(function() {
    /* hide all submenu */
    $('menu').find('ul').hide();
    /* show submenu on mouseenter */
    $('menu li a').mouseenter(function() {
        $(this).parent().children('ul').show();
    }).mouseleave(function() {
        $(this).parent().children('ul').hide();
    });
});

如何检测鼠标将元素留给了他们的孩子?或者,如果有必要,我如何才能保留子元素?

更改您的代码,如下所示:

$(function() {
/* hide all submenu */
$('menu').find('ul').hide();
/* show submenu on mouseenter */ 

// here, just select the direct child
$('menu').find('li > a, li > ul').mouseenter(function() {
    var time = new Date().getTime();
    $(this).parent().find('ul').show().data('showing-time', time);
}).mouseleave(function() {
    var leaveTime = new Date().getTime();
    var $this = $(this);
    window.setTimeout(function () {
        var $ul = $this.parent().find('ul');
        var beginTime = $ul.data('showing-time') || 0;
        if (leaveTime > beginTime) {
            $this.parent().find('ul').hide().data('showing-time', 0);
        }
    }, 100);
});
});

希望这可以帮助。

更新
代码已更新。

我建议只是将子菜单放在父菜单项(此处表示li > a元素)旁边,以获得更好的效果。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何检测鼠标在jQuery中的子元素上?

来自分类Dev

如何检测HTML中相邻元素上的鼠标事件

来自分类Dev

jQuery:将鼠标悬停在主元素上时如何悬停子元素的子元素

来自分类Dev

检测鼠标是否不在iframe中的元素上

来自分类Dev

我如何检测子元素在jquery中的父元素(顶部,左侧,右侧和底部)溢出?

来自分类Dev

如何检测鼠标在pyside中绘制的椭圆上单击?

来自分类Dev

如何检测在pyside中绘制的椭圆上的鼠标单击?

来自分类Dev

如何检测jQuery元素在DOM中?

来自分类Dev

如何检测jQuery中的当前元素?

来自分类Dev

如何禁用/重新启用html元素和子元素上的所有单击/触摸/鼠标事件

来自分类Dev

Gtk:如何检测EventBox上的鼠标位置?

来自分类Dev

如何从Jquery中的元素中心计算鼠标位置

来自分类Dev

(jquery)如何在[div]元素中冻结鼠标光标(指针)?

来自分类Dev

检测元素底部边距上的鼠标悬停

来自分类Dev

在多个重叠的SVG元素上检测鼠标事件

来自分类Dev

JavaScript,检测鼠标光标何时不在任何元素上

来自分类Dev

如何处理元素中的鼠标事件,而不处理其子元素之一?

来自分类Dev

如何检测使用jQuery更改了表单中的哪个元素

来自分类Dev

在Javascript中,如何检测包含子数组和单个元素的数组中的各种元素?

来自分类Dev

jQuery检测在鼠标输入/鼠标离开上拖动的元素下的元素

来自分类Dev

在nsbezierpath上检测鼠标

来自分类Dev

如何在Linux上的python 3中检测鼠标单击?

来自分类Dev

如何检测鼠标是否在列表视图控件中的项目/子项目上?

来自分类Dev

Python3-如何在pygame中检测鼠标是否在图像上单击

来自分类Dev

如何在Linux上的python 3中检测鼠标单击?

来自分类Dev

如何检测鼠标是否在列表视图控件中的项目/子项目上?

来自分类Dev

如何在vb.net中的表单上的任何位置检测到鼠标单击?

来自分类Dev

将鼠标悬停在一个子元素上之后,如何为父元素的背景设置样式?

来自分类Dev

检测文本是否在鼠标jQuery上突出显示

Related 相关文章

  1. 1

    如何检测鼠标在jQuery中的子元素上?

  2. 2

    如何检测HTML中相邻元素上的鼠标事件

  3. 3

    jQuery:将鼠标悬停在主元素上时如何悬停子元素的子元素

  4. 4

    检测鼠标是否不在iframe中的元素上

  5. 5

    我如何检测子元素在jquery中的父元素(顶部,左侧,右侧和底部)溢出?

  6. 6

    如何检测鼠标在pyside中绘制的椭圆上单击?

  7. 7

    如何检测在pyside中绘制的椭圆上的鼠标单击?

  8. 8

    如何检测jQuery元素在DOM中?

  9. 9

    如何检测jQuery中的当前元素?

  10. 10

    如何禁用/重新启用html元素和子元素上的所有单击/触摸/鼠标事件

  11. 11

    Gtk:如何检测EventBox上的鼠标位置?

  12. 12

    如何从Jquery中的元素中心计算鼠标位置

  13. 13

    (jquery)如何在[div]元素中冻结鼠标光标(指针)?

  14. 14

    检测元素底部边距上的鼠标悬停

  15. 15

    在多个重叠的SVG元素上检测鼠标事件

  16. 16

    JavaScript,检测鼠标光标何时不在任何元素上

  17. 17

    如何处理元素中的鼠标事件,而不处理其子元素之一?

  18. 18

    如何检测使用jQuery更改了表单中的哪个元素

  19. 19

    在Javascript中,如何检测包含子数组和单个元素的数组中的各种元素?

  20. 20

    jQuery检测在鼠标输入/鼠标离开上拖动的元素下的元素

  21. 21

    在nsbezierpath上检测鼠标

  22. 22

    如何在Linux上的python 3中检测鼠标单击?

  23. 23

    如何检测鼠标是否在列表视图控件中的项目/子项目上?

  24. 24

    Python3-如何在pygame中检测鼠标是否在图像上单击

  25. 25

    如何在Linux上的python 3中检测鼠标单击?

  26. 26

    如何检测鼠标是否在列表视图控件中的项目/子项目上?

  27. 27

    如何在vb.net中的表单上的任何位置检测到鼠标单击?

  28. 28

    将鼠标悬停在一个子元素上之后,如何为父元素的背景设置样式?

  29. 29

    检测文本是否在鼠标jQuery上突出显示

热门标签

归档