webgui/www/extras/yui/examples/menu/example09.html
JT Smith cfd09a5cb6 upgraded to yui 0.12.0
upgraded to yui-ext 0.33 rc2
2006-11-28 02:23:34 +00:00

197 lines
No EOL
6 KiB
HTML

<!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: Handling Menu Click Events (YUI Library)</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; }
h1 { font-weight:bold; }
#logs {
position:absolute;
bottom:0;
right:0;
}
.example9 {
background-color:#9c9;
}
p#clicknote {
margin-top:1em;
}
p#clicknote em {
font-weight:bold;
}
</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">
YAHOO.example.onWindowLoad = function(p_oEvent) {
// "click" event handler for the menu
function onMenuClick(p_sType, p_aArgs, p_oValue) {
this.show();
}
// "click" event handler for each menu item
function onMenuItemClick(p_sType, p_aArgs, p_oValue) {
YAHOO.log(
(
"index: " + this.index +
", text: " + this.cfg.getProperty("text") +
", value:" + p_oValue
),
"info",
"example9"
);
this.parent.show();
}
var oMenu = new YAHOO.widget.Menu("mymenu");
oMenu.addItems(["Item One","Item Two","Item Three"]);
oMenu.getItem(0).clickEvent.subscribe(onMenuItemClick);
/*
Register a "click" event handler for the first item,
passing a string arguemnt ("foo") to the event handler.
*/
oMenu.getItem(1).clickEvent.subscribe(onMenuItemClick, "foo");
/*
Register a "click" event handler for the third item and
passing and array as an argument to the event handler.
*/
oMenu.getItem(2).clickEvent.subscribe(onMenuItemClick, ["foo", "bar"]);
oMenu.clickEvent.subscribe(onMenuClick, oMenu, true);
oMenu.render(document.body);
oMenu.show();
var oLogs = document.createElement("div");
oLogs.id = "logs";
document.body.appendChild(oLogs);
var oLogReader = new YAHOO.widget.LogReader("logs");
function onMenuToggleMouseDown(p_oEvent) {
YAHOO.util.Event.stopPropagation(p_oEvent);
oMenu.show();
}
YAHOO.util.Event.addListener("menutoggle", "mousedown", onMenuToggleMouseDown);
/*
Add a "mousedown" event handler to prevent the menu from
hiding when the user mouses down on the logger.
*/
function onLogsMouseDown(p_oEvent) {
YAHOO.util.Event.stopPropagation(p_oEvent);
}
YAHOO.util.Event.addListener("logs", "mousedown", onLogsMouseDown);
}
YAHOO.util.Event.addListener(window, "load", YAHOO.example.onWindowLoad);
</script>
</head>
<body>
<h1>Example: Handling Menu Click Events (YUI Library) <em>[<a href="index.html">Examples Home</a>]</em></h1>
<p>This example demonstrates how to register a "click" event handler for a MenuItem instance. All of the events for YUI Menu are instances of <a href="http://developer.yahoo.com/yui/event/#customevent">YAHOO.util.CustomEvent</a>. To register a listener for an event, use the event's "subscribe" method passing a pointer to your handler as the first argument. You can pass an argument to your event handler(s) as an additional second argument to the "subscribe" method.</p>
<p id="clicknote"><em>Note:</em> 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.</p>
<button id="menutoggle">Show Menu</button>
</body>
</html>