Description:
The onSelect property of the MenuItem object is an event handler for the event of when the menu item is selected.
In other words, when the end user opens the options menu and selects a menu
item either from the top-level menu list or from a submenu list, the system
will fire an event and a widget can catch the event by providing a callback
function.
The callback function is passed with an argument, which is an integer identifier identifying the menu item that was just selected.
It is possible to assign an individual callback function for each menu
item so that the id argument can be ignored.
Syntax:
MenuItem.onSelect = function(Integer id) { }
or
MenuItem.onSelect = onMenuItemSelected;
function onMenuItemSelected(id)
{
// ...
}
Remarks:
Submenu item's callback function must be assigned to the onSelect property
after the parent menu item is appended to the main menu pane.
For more general information on constructing an options menu, see Using softkeys.
Example code:
Creating a menu:
window.onload = createMenu();
// function to create a menu
function createMenu()
{
// Create a Menu Object
var optionsMenu = window.menu;
// Set a callback function for Menu
optionsMenu.onShow = function()
{
alert('Event Trigger: optionsMenu.onShow');
}
// Create two Menu items
var m1 = new MenuItem('Beverages', 2001);
var m2 = new MenuItem('Snacks', 2002);
// Assign a callback function for the menu items
m1.onSelect = menuEventHandler;
m2.onSelect = menuEventHandler;
// Append two Menu items to Menu
optionsMenu.append(m1);
optionsMenu.append(m2);
// Create two more Menu items for Sub-Menu
var m11 = new MenuItem('Coca Cola', 3001);
var m12 = new MenuItem('Pepsi', 3002);
// Append two Sub Menu Items to Menu 'Beverages'
// get Menu Item reference by ID
optionsMenu.getMenuItemById(2001).append(m11);
// get Menu Item reference by Name
optionsMenu.getMenuItemByName('Beverages').append(m12);
// Assign a callback function for the submenu items
m11.onSelect = submenuEventHandler;
m12.onSelect = submenuEventHandler;
}
Implement menu event handler:
function menuEventHandler(id)
{
switch (id)
{
case 2001:
break;
case 2002:
// do something
break;
}
}