Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 切换jquery子菜单项_Javascript_Jquery - Fatal编程技术网

Javascript 切换jquery子菜单项

Javascript 切换jquery子菜单项,javascript,jquery,Javascript,Jquery,当我尝试切换子菜单项时,该项将切换,但第一级菜单将关闭。当用户单击子菜单项时,菜单不应隐藏。例如,如果单击SSNIT并转到“核心服务”,则会出现子菜单,但第一级菜单项已关闭。需要一些专业知识来解决这个问题吗? 您可以在这里查看JSFIDLE上的代码 HTML: JavaScript: $(document).ready(function () { $("#menu ul li, #menu > li ul li").click(function () {

当我尝试切换子菜单项时,该项将切换,但第一级菜单将关闭。当用户单击子菜单项时,菜单不应隐藏。例如,如果单击SSNIT并转到“核心服务”,则会出现子菜单,但第一级菜单项已关闭。需要一些专业知识来解决这个问题吗? 您可以在这里查看JSFIDLE上的代码

HTML:

JavaScript:

         $(document).ready(function () {
         $("#menu ul li, #menu > li ul li").click(function () {
            //mouse click toggle menu items
              $('>ul').toggle(        
                // mouseover
                function () {              
                  $(this).find('>ul').fadeIn('slow');         
                });
            });
        });

根据您的html结构,您可能只需要以下内容:

$(document).ready(function () {

    $("#menu li > a").on('click', function(e){
       $(this).siblings('ul').toggle('slow');
    });

});

有了它,无论子菜单显示多少级别,这一事件注册就足够了


请注意,toggle伪事件已被弃用,您需要使用click event自己处理它。

您使用的是哪个版本的jquery?我使用的是10.2版(jquery-1.10.2.min.js),我在JSFiddle@user2744859上稍微更新了脚本,这两个fiddle似乎都不起作用,我在屏幕上看不到任何子菜单click@user2744859你想要这样的-->这回答了我的问题。非常感谢@用户2744859不客气。。顺便说一句,如果要阻止链接重定向,只需在处理程序内部执行
e.preventDefault()
         $(document).ready(function () {
         $("#menu ul li, #menu > li ul li").click(function () {
            //mouse click toggle menu items
              $('>ul').toggle(        
                // mouseover
                function () {              
                  $(this).find('>ul').fadeIn('slow');         
                });
            });
        });
$(document).ready(function () {

    $("#menu li > a").on('click', function(e){
       $(this).siblings('ul').toggle('slow');
    });

});