javascript - 我如何修复子菜单的 jquery 脚本?

标签 javascript jquery menu

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

$(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 close 仅​​关闭。然后,如果我关闭 .menu-item a 那么...#menu-2 打开。我该如何修复?

最佳答案

尝试

$(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();
});

关于javascript - 我如何修复子菜单的 jquery 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19920397/

相关文章:

jquery - 为什么我的 jQuery 按钮没有显示在我的对话框上?

jquery - 日期选择器更改表单提交上的日期格式

menu - ionic 导航后退按钮和菜单按钮一起显示

php - wordpress 函数 remove_menu_page() 抛出错误

javascript - 如何在 vue.js 中进行条件异步操作

javascript - 读取 localStorage 数据?

javascript - 在输入字段发生任何变化时调用 jQuery 函数

javascript - 设计问题 Active Record Search 与 Javascript Search

javascript - 如何根据给定的 html 结构使用 Jquery 制作 Accordion 效果?

html - 带有缩略图的CSS下拉菜单