简体   繁体   English

如何使用jQuery动态在子菜单下添加子菜单?

[英]how to add submenu under submenu dynamically using jquery?

i need to create following menubar structure dynamically using jquery. 我需要使用jquery动态创建以下菜单栏结构。

-Setting
--System
---user
---group
---acl
--Vresource
---vms
---vnet-conf
--Configuration
---template
---image

in my case system's submenu{user,group,acl} falls under setting instead of System menu. 在我的情况下,系统的子菜单{user,group,acl}属于设置而非系统菜单。

i've bellow code written in my .js file. 我已经在我的.js文件中编写了下面的代码。

 var li_item = '<li id="li_'+tab_name+'" class="'+tabClass+' '+parent+'"><a href="#">'+tab_info.title+'<span class="icon-caret-left icon-large plusIcon right"></span></a></li>';

    //if this is a submenu... div#menu ul#navigation li.vresources-tab
    if (parent.length) {
        var children = $('div#menu ul#navigation li.'+parent);

        //if there are other submenus, insert after last of them
        if (children.length){
            $(children[children.length-1]).after(li_item);
        }else{ //instert after parent menu
            $('div#menu ul#navigation li#li_'+parent).after(li_item);
        }
    } else { //not a submenu, instert in the end
        $('div#menu ul#navigation').append(li_item);
    };

this code generate bellow html snippet. 此代码生成下面的html代码段。

<div class="menu-navZ">
<ul id="navigation" class="tabs vertical">
<li id="li_settings-tab" class="topTab tab_with_no_content">
<li id="li_system-tab" class="subTab topTab tab_with_no_content settings-tab" style="display: none;">
<li id="li_vresources-tab" class="subTab topTab tab_with_no_content settings-tab" style="display: none;">
<li id="li_configuration-tab" class="subTab topTab tab_with_no_content settings-tab" style="display: none;">
<li id="li_templates-tab" class="subTab subsubTab configuration-tab" style="display: none;">
<li id="li_images-tab" class="subTab subsubTab configuration-tab" style="display: none;">
<li id="li_vms-tab" class="subTab subsubTab vresources-tab" style="display: none;">
<li id="li_vnetconf-tab" class="subTab subsubTab topTab vresources-tab" style="display: none;">
<li id="li_users-tab" class="subTab subsubTab system-tab" style="display: none;">
<li id="li_groups-tab" class="subTab subsubTab system-tab" style="display: none;">
<li id="li_acls-tab" class="subTab subsubTab system-tab" style="display: none;">
</ul>
</div>

as you can see here, <li> statement of sub menu generated in incorrect way, it should come under the proper menu like last three statements user,group and acl should come under system. 如您在这里看到的那样,子菜单的<li>语句以不正确的方式生成,它应该位于适当的菜单下,如最后三个语句user,group和acl应该位于系统下。

Expected output : 预期产量:

<div class="menu-navZ">
<ul id="navigation" class="tabs vertical">
<li id="li_settings-tab" class="topTab tab_with_no_content">
<li id="li_system-tab" class="subTab topTab tab_with_no_content settings-tab" style="display: none;">
<li id="li_users-tab" class="subTab subsubTab system-tab" style="display: none;">
<li id="li_groups-tab" class="subTab subsubTab system-tab" style="display: none;">
<li id="li_acls-tab" class="subTab subsubTab system-tab" style="display: none;">

<li id="li_vresources-tab" class="subTab topTab tab_with_no_content settings-tab" style="display: none;">
<li id="li_vms-tab" class="subTab subsubTab vresources-tab" style="display: none;">
<li id="li_vnetconf-tab" class="subTab subsubTab topTab vresources-tab" style="display: 

<li id="li_configuration-tab" class="subTab topTab tab_with_no_content settings-tab" style="display: none;">
<li id="li_templates-tab" class="subTab subsubTab configuration-tab" style="display: none;">
<li id="li_images-tab" class="subTab subsubTab configuration-tab" style="display: none;">
none;">
</ul>
</div>

please help me figure out this issue. 请帮助我解决这个问题。

The reason your menu elements aren't nesting properly is you're not building nested <ul> elements in your code, you're just trying to nest <li> elements with other <li> elements. 菜单元素未正确嵌套的原因是,您未在代码中构建嵌套的<ul>元素,而是试图将<li>元素与其他<li>元素嵌套。 Each sub-menu should be a new unordered list nested inside the previous unordered list. 每个子菜单应为嵌套在先前无序列表内的新无序列表。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM