Mega Code Archive

 
Categories / JavaScript DHTML / GUI Components
 

Example 10

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"         "http://www.w3.org/TR/html4/strict.dtd"> <html>     <head>         <meta http-equiv="content-type" content="text/html; charset=utf-8">         <title>Example 10: Listening For DOM-Related Events</title>         <!-- Standard reset and fonts -->         <link rel="stylesheet" type="text/css" href="./build/reset/reset.css">         <link rel="stylesheet" type="text/css" href="./build/fonts/fonts.css">         <!-- Logger CSS -->         <link rel="stylesheet" type="text/css" href="./build/logger/assets/logger.css">         <!-- CSS for Menu -->         <link rel="stylesheet" type="text/css" href="./build/menu/assets/menu.css">           <!-- Page-specific styles -->         <style type="text/css">             body { margin:.5em; }             p em {                              text-decoration:underline;                          }             #logs {                 position:absolute;                 bottom:0;                 right:0;                          }             .example10 {                 background-color:#9c9;                          }         </style>                  <!-- Namespace source file -->         <script type="text/javascript" src="./build/yahoo/yahoo.js"></script>         <!-- Dependency source files -->         <script type="text/javascript" src="./build/event/event.js"></script>         <script type="text/javascript" src="./build/dom/dom.js"></script>                      <!-- Logger source file -->         <script type="text/javascript" src="./build/logger/logger.js"></script>                  <!-- Container source file -->         <script type="text/javascript" src="./build/container/container_core.js"></script>         <!-- Menu source file -->         <script type="text/javascript" src="./build/menu/menu.js"></script>                  <!-- Page-specific script -->         <script type="text/javascript">             // "load" event handler for the window             YAHOO.example.onWindowLoad = function(p_oEvent) {                 // Generic event handler for the Menu instance's DOM-related events                                  function onMenuEvent(p_sType, p_aArguments) {                                      var oDOMEvent = p_aArguments[0];                          YAHOO.log(                         (                         "Id: " + this.id + ", " +                         "Custom Event Type: " + p_sType + ", " +                                           "DOM Event Type: " + oDOMEvent.type                         ),                         "info",                         "example10"                     );                 }                           /*                     Generic event handler for each MenuItem instance's                      DOM-related events                 */                      function onMenuItemEvent(p_sType, p_aArguments) {                          var oDOMEvent = p_aArguments[0];                          YAHOO.log(                         (                         "Index: " + this.index + ", " +                         "Group Index: " + this.groupIndex + ", " +                         "Custom Event Type: " + p_sType + ", " +                                           "DOM Event Type: " + oDOMEvent.type                         ),                         "info",                         "example10"                     );                                      }                 // Create a menu                 var oMenu = new YAHOO.widget.Menu("basicmenu"),                     // Create the MenuItem instances and add them to the menu                     aMenuItemData = [                                          "MenuItem 0",                         "MenuItem 1",                         "MenuItem 2",                         "MenuItem 3",                         "MenuItem 4"                     ],                     nMenuItems = aMenuItemData.length,                     oMenuItem;                                  for(var i=0; i<nMenuItems; i++) {                     oMenuItem = oMenu.addItem(aMenuItemData[i]);                     oMenuItem.mouseOverEvent.subscribe(onMenuItemEvent);                     oMenuItem.mouseOutEvent.subscribe(onMenuItemEvent);                     oMenuItem.mouseDownEvent.subscribe(onMenuItemEvent);                     oMenuItem.mouseUpEvent.subscribe(onMenuItemEvent);                     oMenuItem.clickEvent.subscribe(onMenuItemEvent);                     oMenuItem.keyDownEvent.subscribe(onMenuItemEvent);                     oMenuItem.keyUpEvent.subscribe(onMenuItemEvent);                     oMenuItem.keyPressEvent.subscribe(onMenuItemEvent);                 }                 oMenu.render(document.body);                      oMenu.show();                 // Focus the first MenuItem instance                 oMenu.getItem(0).focus();                                  // Disable the third MenuItem instance                 oMenu.getItem(2).cfg.setProperty("disabled", true);                 // Subscribe to the menu's DOM-related events                 oMenu.mouseOverEvent.subscribe(onMenuEvent);                 oMenu.mouseOutEvent.subscribe(onMenuEvent);                 oMenu.mouseDownEvent.subscribe(onMenuEvent);                 oMenu.mouseUpEvent.subscribe(onMenuEvent);                 oMenu.clickEvent.subscribe(onMenuEvent);                 oMenu.keyDownEvent.subscribe(onMenuEvent);                 oMenu.keyUpEvent.subscribe(onMenuEvent);                 oMenu.keyPressEvent.subscribe(onMenuEvent);                 var oLogs = document.createElement("div");                 oLogs.id = "logs";                                  document.body.appendChild(oLogs);                 var oLogReader = new YAHOO.widget.LogReader("logs");             }             YAHOO.util.Event.addListener(window, "load", YAHOO.example.onWindowLoad);                      </script>              </head>     <body>         <h1>Example 10: Listening For DOM-Related Events</h1>         <p>This example demonstrates how to listen for DOM-related events.  Interaction with the Menu will result in event information being output to the console.  <em>Please note</em>: Disabled MenuItem instances do not fire DOM events.  This is demonstrated with the MenuItem named "MenuItem 2."</p>     </body> </html>                          yui.zip( 3,714 k)