为什么 onClick 事件对 dojo MenuItem 不起作用?
Why onClick event not work on dojo MenuItem?
我正在研究 Dojo 1.10.4,我的问题是 onClick 事件在 dijit/MenuItem 上不起作用。我在其他项目小部件上尝试过它,例如 dijit/CheckedMenuItem 和 dijit/RadioMenuItem,none 他们的点击事件有效,并且 API 文档没有给出任何相关提示。
最后,我发现它只有包含在 dijit/MenuBar 中才有效。 Item 小部件应该包含在 dijit/MenuBar 还是 dijit/Menu 中?如何在 dojo 小部件上处理事件?
例如:
<html>
<head>
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/dojo/1.10.4/dijit/themes/claro/claro.css">
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"
data-dojo-config="async:true,parseOnLoad: true"></script>
<script>
require(["dojo/parser"],function(parser){
parser.parse();
});
</script>
</head>
<body class="claro">
<div data-dojo-type="dijit/MenuBar" >
<div data-dojo-type="dijit/MenuItem" onclick="alert();">it works</div>
</div>
<div data-dojo-type="dijit/MenuItem" onclick="alert();">it doesn't work</div>
</body>
</html>
在这种情况下,MenuItem 需要像 Menu 或 MenuBar 这样的 ContainerWidget。您将项目添加为 child,例如:
require([
"dojo/dom",
"dijit/MenuItem",
"dijit/DropDownMenu",
"dijit/form/DropDownButton"
],
function(dom,MenuItem,DropDownMenu,DropDownButton){
var myMenu = new DropDownMenu();
var menuItem1 = new MenuItem({
id:"M1",
label:"Show M1",
onClick:function(){
//do what you want to do here
}
});
myMenu.addChild(menuItem1);
});
研究它也可能有助于您了解它的工作原理。
http://dojotoolkit.org/reference-guide/1.10/dijit/DropDownMenu.html#dijit-dropdownmenu
此致
我正在研究 Dojo 1.10.4,我的问题是 onClick 事件在 dijit/MenuItem 上不起作用。我在其他项目小部件上尝试过它,例如 dijit/CheckedMenuItem 和 dijit/RadioMenuItem,none 他们的点击事件有效,并且 API 文档没有给出任何相关提示。
最后,我发现它只有包含在 dijit/MenuBar 中才有效。 Item 小部件应该包含在 dijit/MenuBar 还是 dijit/Menu 中?如何在 dojo 小部件上处理事件?
例如:
<html>
<head>
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/dojo/1.10.4/dijit/themes/claro/claro.css">
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"
data-dojo-config="async:true,parseOnLoad: true"></script>
<script>
require(["dojo/parser"],function(parser){
parser.parse();
});
</script>
</head>
<body class="claro">
<div data-dojo-type="dijit/MenuBar" >
<div data-dojo-type="dijit/MenuItem" onclick="alert();">it works</div>
</div>
<div data-dojo-type="dijit/MenuItem" onclick="alert();">it doesn't work</div>
</body>
</html>
在这种情况下,MenuItem 需要像 Menu 或 MenuBar 这样的 ContainerWidget。您将项目添加为 child,例如:
require([
"dojo/dom",
"dijit/MenuItem",
"dijit/DropDownMenu",
"dijit/form/DropDownButton"
],
function(dom,MenuItem,DropDownMenu,DropDownButton){
var myMenu = new DropDownMenu();
var menuItem1 = new MenuItem({
id:"M1",
label:"Show M1",
onClick:function(){
//do what you want to do here
}
});
myMenu.addChild(menuItem1);
});
研究它也可能有助于您了解它的工作原理。 http://dojotoolkit.org/reference-guide/1.10/dijit/DropDownMenu.html#dijit-dropdownmenu
此致