Example 12: Setting Configuration Properties At Runtime : Menu 2 « GUI Components « JavaScript DHTML






Example 12: Setting Configuration Properties At Runtime

 

<!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 12: Setting Configuration Properties At Runtime</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; }

            li.yuimenuitem a em {
            
                font-style:italic;
            }
            
            li.yuimenuitem strong {
            
                font-weight:bold;
            
            }

            p em {
            
                text-decoration:underline;
            
            }

            #logs {

                position:absolute;
                bottom:0;
                right:0;
            
            }

            .example12 {

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

                // "config change" event handler for each MenuItem instance 
    
                function onMenuItemConfigChange(p_sType, p_aArguments, p_oMenuItem) {
    
                    var sPropertyName = p_aArguments[0][0],
                        sPropertyValue = p_aArguments[0][1];
    
                    YAHOO.log(
                        (
                        "Index: " + this.index + ", " +
                        "Group Index: " + this.groupIndex + ", " +
                        "Custom Event Type: " + p_sType + ", " +                  
                        "\"" + sPropertyName + "\" Property Set To: \"" + sPropertyValue + "\""
                        ),
                        "info",
                        "example12"
                    );
                
                }


                // Create a menu

                var oMenu = new YAHOO.widget.Menu("basicmenu"),

                    // Add the MenuItem instance to the menu
    
                    aMenuItemData = [
                    
                        "MenuItem 0",
                        "MenuItem 1",
                        "MenuItem 2",
                        "MenuItem 3",
                        "MenuItem 4",
                        "MenuItem 5"
    
                    ],
    
                    nMenuItems = aMenuItemData.length,
                    
                    oMenuItem;
                

                for(var i=0; i<nMenuItems; i++) {

                    oMenuItem = oMenu.addItem(aMenuItemData[i]);

                    oMenuItem.cfg.configChangedEvent.subscribe(onMenuItemConfigChange, oMenuItem, true);

                }


                oMenu.render(document.body);
    
                oMenu.show();


                // Set the MenuItem configuration properties

                oMenu.getItem(0).cfg.setProperty("selected", true);
                oMenu.getItem(1).cfg.setProperty("disabled", true);
                oMenu.getItem(2).cfg.setProperty("helptext", "Help Me!");
                oMenu.getItem(3).cfg.setProperty("emphasis", true);
                oMenu.getItem(4).cfg.setProperty("strongemphasis", true);  
                oMenu.getItem(5).cfg.setProperty("checked", true);
                
                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 12: Setting Configuration Properties At Runtime</h1>
        <p>This example demonstrates how to set MenuItem configuration properties at runtime and listen for the changes through the "configChangedEvent."</p>

    </body>
</html>
           
         
  








yui.zip( 3,714 k)

Related examples in the same category

1.Popup Menu
2.AtJsMenu Demo
3.Example 1: Basic Menu From Existing Markup
4.Example 2: Basic Menu From Pure JavaScript
5.Example 3: Grouped MenuItem Instances From Existing Markup
6.Example 4: Grouped MenuItem Instances Using Pure JavaScript
7.Example 5: Grouped MenuItem Instances With Titles From Existing Markup
8.Example 6: Grouped MenuItem Instances With Titles Using Pure JavaScript
9.Example 7: Multi-tiered Menu From Existing Markup
10.Example 8: Multi-tiered Menu From Pure JavaScript
11.Example 9: Handling Click Events
12.Example 10: Listening For DOM-Related Events
13.Example 11: MenuItem Configuration Properties
14.Example 13: Multi-tiered Menu with Progressive Rendering of Submenus
15.Website Left Nav Example (with submenus built from JavaScript) 1
16.Website Left Nav Example (with submenus built from markup) 2
17.OS-Style Programs Menu Example
18.Website Top Nav (with submenus built from JavaScript) 3
19.Website Top Nav (with submenus built from markup) 4
20.Drop down menu and sub menu
21.Vertical menu and image menu
22.Emulate XP start menu
23.xmenu-xlayer-3
24.tree-menu
25.menu for applications