197 lines
No EOL
6 KiB
HTML
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> |