首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为子菜单修复这个jquery脚本?

如何为子菜单修复这个jquery脚本?
EN

Stack Overflow用户
提问于 2013-11-12 03:34:47
回答 2查看 146关注 0票数 1

这是代码,结果是:您可以通过单击“内部”来查看测试菜单。

代码语言:javascript
复制
$(document).ready(function () {
    var $links = $('#menu-menu-1 .menu-item a').click(function () {



        var submenu = $(this).next();
        $subs.not(submenu).hide()
        submenu.toggle(500);
        $("#menu-2").slideToggle(300);
    });
    var $subs = $links.next(); });

问题是,如果我点击菜单,它就会出现子菜单,但是如果我不关闭我打开的子菜单,并且在菜单中打开另一个声音,它就不能正常工作。

当#menu-2打开时,如果我单击另一个.menu-item a,会发生什么?脚本正确地关闭并打开另一个子菜单,但我的#menu-2只关闭。如果我关闭.menu-item a所以..。#menu-2打开。我该怎么办才能修好?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-12 03:57:53

试一试

代码语言:javascript
复制
$(document).ready(function () {
    var $menu2 = $("#menu-2");
    var $links = $('#menu-menu-1 .menu-item a').click(function () {
        var submenu = $(this).next();
        $subs.not(submenu).hide();
        var isVisible = submenu.stop(true, true).is(':visible');
        $menu2.stop(true, true);
        if (isVisible) {
            submenu.hide(500);
            $menu2.slideUp(300);
        } else {
            $menu2.slideUp(300, function () {
                $menu2.slideDown(300);
                submenu.show(500);
            });
        }
    });
    var $subs = $links.next();
});
票数 1
EN

Stack Overflow用户

发布于 2013-11-12 03:57:25

我认为你可以简化你想要做的事情(未经测试):

代码语言:javascript
复制
$(function () { 
    var menuItems = $('#menu-menu-1 > li');
    var submenus = $('ul', menuItems)

    menuItems.click(function () {

        submenus.slideUp(); // Hide all menus to their default hidden state
        var submenu = $('ul', $(this)); // Show the child menu for the clicked menu
        submenu.toggle(500);
    });
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19920397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档