2013-09-27 73 views
0

我需要使用jquery動態創建下列菜單欄結構。如何在子菜單下使用jquery動態添加子菜單?

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

在我的情況下系統的子菜單{用戶,組,ACL}落在下設定的,而不是系統菜單。

我在我的.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); 
    }; 

此代碼生成以下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> 

,你可以在這裏看到,不正確的方式產生的子菜單中<li>聲明,它應該像過去三年報表的用戶,組和ACL適當的菜單下應該來系統下。

預期輸出:

<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> 

請幫我找出這個問題。

回答

0

您的菜單元素沒有正確嵌套的原因是您沒有在您的代碼中構建嵌套的<ul>元素,您只是試圖將<li>元素嵌套在其他<li>元素中。每個子菜單都應該是一個嵌套在先前無序列表中的新無序列表。

+0

是你是ri8 ..但這個聲明是動態生成的,所以我卡住der – Jaydipsinh