2013-02-20 69 views
0

我想通過從列表中獲取菜單元素來動態創建yui菜單。yui:通過使用給定的項目列表動態地創建yui菜單

forexample我有一個列表

MENULIST: 
    MENUITEM1 
    MENUITEM2 
    MENUITEM3 
    MENUITEM4 

這些菜單項的對象將inturn有子菜單和相關的屬性,功能類似的onclick等列表例如

MENUITEM1----->SUBMENUITEM11,ONCLICK=SOMEFUNCTION() 
       SUBMENUITEM12,ONCLICK=SOMEFUNCTION() 
       SUBMENUITEM13,ONCLICK=SOMEFUNCTION() 
    MENUITEM2----->SUBMENUITEM21,ONCLICK=SOMEFUNCTION() 
       SUBMENUITEM22,ONCLICK=SOMEFUNCTION() 

我會在得到這些名單運行時,soi需要動態加載菜單。是否存在 yui菜單中的任何選項來執行此操作以循環顯示列表並生成菜單。比你提前。

回答

0

自從NodeMenuNav以來它就只是一個插件。有一個新的Menu組件的計劃,它將支持從JavaScript創建菜單項。 Ryan Grove最近貢獻了一個Tree數據結構,在這個結構之上可以構建未來的Menu組件。他還在研究一個新的FocusManager,所以它都在工作。

現在您需要自己創建標記,然後應用NodeMenuNav插件。一個好主意是使用Template.Micro這樣的模板。查看tmeplates用戶指南:http://yuilibrary.com/yui/docs/template/。用於菜單的微型模板可能如下所示:

<div id="menu-1" class="yui3-menu"> 
    <div class="yui3-menu-content"> 
    <ul> 
     <% Y.Array.each(this.menus, function (menu) { %> 
     <li class="yui3-menuitem"> 
      <a class="yui3-menuitem-content" href="<%= menu.link %>"><%= menu.label %></a> 
     </li> 
     <% }); %> 
    </ul> 
    </div> 
</div>