【问题标题】:JQuery Nested Menu item with Links带有链接的 JQuery 嵌套菜单项
【发布时间】:2014-08-11 00:40:48
【问题描述】:

我目前正在努力修复侧边栏上的 jQuery 脚本。该网站可以找到here

我想要实现的是使侧边栏切换在每个具有子 'ul' 的父 'li' 元素上工作。

父菜单项不应重定向,除非它已展开。同样的事情也应该发生在具有子菜单项的子菜单项上。没有子“ul”的菜单项应该重定向。

我的 jQuery 代码是:

    $('.textwidget .sub-menu .sub-menu').hide(); 
    $('.textwidget .sub-menu li').has('ul.sub-menu').each(function(){
        $(this).addClass('expand');
    });

    $('.widget_text > div > ul.sub-menu li').addClass('dead');

    $('.widget_text > div > ul.sub-menu li:has(ul)').click(function(e){

        if ( $(this).hasClass("expand") ) {
            $(this).removeClass('expand');
            $(this).addClass('collapse');
        }
        else{

            $(this).addClass('expand');
            $(this).removeClass('collapse');

        }
        $(this).find('ul').first().slideToggle();
        return false;
        //console.log($(this).closest('li.expand').attr('class'));
    });

    $('.widget_text > div > ul.sub-menu li a').click(function(e){

        if ( $(this).next('ul').is(":hidden") ) {
            e.preventDefault();
        }
        else{
            $(this).closest('ul').stop(true,false);
        }
        //console.log($(this).closest('li.expand').attr('class'));
    });

目前,由于return false; 语句,它根本没有重定向。

有什么建议可以让这段代码正常工作吗?

【问题讨论】:

    标签: jquery


    【解决方案1】:

    据我了解,您的脚本可以简化为:

    $('.textwidget .sub-menu .sub-menu').hide();
    $('.widget_text > div > ul.sub-menu li').addClass('dead');
    $('.textwidget .sub-menu li').has('ul.sub-menu').removeClass('dead').addClass('expand');    
    
    $('.widget_text > div > ul.sub-menu li:has(ul)').click(function (e) {
        var $li=$(this);
        if ($li.hasClass("expand")) {     //if clicked menu not expanded    
                e.stopPropagation();
                e.preventDefault();
        } else {
            if ($(e.target).parent().is('a')) {return;} //if menu expanded and we click on link
        }
        $li.toggleClass("expand collapse").children('ul').first().slideToggle();
    
    });
    

    Demo

    【讨论】:

    • 哇。谢啦。你是个传奇。你的代码真的很有帮助。
    猜你喜欢
    • 1970-01-01
    • 2023-04-07
    • 2018-08-28
    • 1970-01-01
    • 2014-04-13
    • 2015-04-19
    • 1970-01-01
    • 1970-01-01
    • 2014-06-08
    相关资源
    最近更新 更多