YUI Library Examples: Menu Family: Grouped Menu Items With Titles From JavaScript

Menu Family: Grouped Menu Items With Titles From JavaScript

This example demonstrates how to title groups of MenuItem instances.

Note: By default clicking outside of a menu will hide it. Additionally, menu items without a submenu or a URL to navigate will hide their parent menu when clicked. Click the "Show Menu" button below to make the menu visible if it is hidden.

Creating a Menu from JavaScript with items organized into groups with titles

To create a Menu with no pre-existing markup on the page, call the Menu constructor (YAHOO.widget.Menu) passing the id of the Menu element to be created as the first argument.

Add items to a Menu instance via the addItem, insertItem, or addItems methods.

Items can be organized into groups by creating a multi-dimensional array of YAHOO.widget.MenuItem configuration properties and passing it to the addItems method. Add a title to each group via the setItemGroupTitle method.

Finally, it is necessary to call the render method passing the id of, or reference to the element the Menu should be appended to.

1/*
2     Instantiate the menu.  The first argument passed to the 
3     constructor is the id of the DOM element to be created for the 
4     menu; the second is an object literal representing a set of 
5     configuration properties for the menu.
6*/ 
7 
8var oMenu = new YAHOO.widget.Menu("menuwithgroups", { fixedcenter: true }); 
9 
10/*
11    Add items to the menu by passing a multi-dimensional array of 
12    object literals (each of which represents a set of 
13    YAHOO.widget.MenuItem configuration properties) to the 
14    "addItems" method.
15*/ 
16 
17oMenu.addItems([ 
18 
19    [ 
20        { text: "Yahoo! Mail", url: "http://mail.yahoo.com" }, 
21        { text: "Yahoo! Address Book", url: "http://addressbook.yahoo.com" }, 
22        { text: "Yahoo! Calendar", url: "http://calendar.yahoo.com" }, 
23        { text: "Yahoo! Notepad", url: "http://notepad.yahoo.com" } 
24    ], 
25 
26    [ 
27 
28        { text: "Yahoo! Local", url: "http://local.yahoo.com" }, 
29        { text: "Yahoo! Maps", url: "http://maps.yahoo.com" }, 
30        { text: "Yahoo! Travel", url: "http://travel.yahoo.com" }, 
31        { text: "Yahoo! Shopping", url: "http://shopping.yahoo.com" }  
32     
33    ], 
34 
35    [ 
36 
37        { text: "Yahoo! Messenger", url: "http://messenger.yahoo.com" }, 
38        { text: "Yahoo! 360", url: "http://360.yahoo.com" }, 
39        { text: "Yahoo! Groups", url: "http://groups.yahoo.com" }, 
40        { text: "Yahoo! Photos", url: "http://photos.yahoo.com" } 
41     
42    ] 
43 
44]); 
45 
46// Add the title for each group of menu items 
47 
48oMenu.setItemGroupTitle("Yahoo! PIM", 0); 
49oMenu.setItemGroupTitle("Yahoo! Search", 1); 
50oMenu.setItemGroupTitle("Yahoo! Communications", 2); 
51 
52/*
53     Since this menu is built completely from script, call the "render" 
54     method passing in the id of the DOM element that the menu's 
55     root element should be appended to.
56*/ 
57 
58oMenu.render("rendertarget"); 
59             
view plain | print | ?

Copyright © 2007 Yahoo! Inc. All rights reserved.

Privacy Policy - Terms of Service - Copyright Policy - Job Openings