【问题标题】:Make a submenu with jQuery and html5使用 jQuery 和 html5 制作子菜单
【发布时间】:2012-01-25 06:25:14
【问题描述】:

我想用 jQuery 和 javascript 创建一个子菜单。 我有这个 html 结构:

<nav class="container">
    <ul>
        <li><a href="#" title="Werken in de zorg">Werken in de zorg</a>
            <ul class="submenu">
                <li><a class="label" href="#" title="Lees meer over Werkvelden">Werkvelden</a></li>
                <li><a href="#" title="Lees meer over Eerstelijnzorg">Eerstelijnzorg</a></li>
                <li><a href="#" title="Lees meer over Geestelijke Gezondheidszorg">Geestelijke Gezondheidszorg</a></li>
                <li><a href="#" title="Lees meer over Gehandicaptenzorg">Gehandicaptenzorg</a></li>
            </ul>
        </li>
        <li><a href="#" title="Vacatures">Vacatures</a></li>
        <li><a href="#" title="Opleidingen en scholen">Opleidingen en scholen</a></li>
    </ul>
</nav>

在 CSS 中将 .submenu 设置为不显示。但现在是javascript。我想。如果你有一个 hovert li 项目。然后出现子菜单。当你离开子菜单时。然后仍然保持300ms。但是我应该如何使用 jQuery 呢?

非常感谢您的帮助!

【问题讨论】:

  • 有很多现成的下拉菜单解决方案可以做到这一点。最好看看其中一个
  • 你有什么吗?什么是好的?

标签: javascript jquery submenu nav


【解决方案1】:

试试超级鱼 http://users.tpg.com.au/j_birch/plugins/superfish/#examples

它有延迟,你可以使用 hoverintent

【讨论】:

    【解决方案2】:

    你可以试试这个:

    $(document).ready(function() {
        $('nav.container').children('ul').children('li').hover(function() {
            if ($(this).find('.submenu').length > 0) {
                $(this).find('.submenu').slideToggle();
            }
        }, function() {
            $(this).find('.submenu').delay(300).slideToggle();
        });
    });
    

    Here's a fiddle 表明它工作正常。

    【讨论】:

    • 这似乎只适用于带有 ul 的第一个 li。如果有其他子菜单块,它们不会打开。
    • 当我在我的页面中包含这个 jquery 时,我也会收到这个错误:Uncaught SyntaxError: Unexpected token ILLEGAL
    猜你喜欢
    • 2015-11-15
    • 2013-12-23
    • 2019-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-08
    相关资源
    最近更新 更多