根据 Dojo 文档 dijit/menu 您可以通过指定节点的 id 将菜单附加到节点。就像他们的例子一样
require([
"dijit/Menu",
"dijit/MenuItem",
"dijit/CheckedMenuItem",
"dijit/MenuSeparator",
"dijit/PopupMenuItem",
"dojo/domReady!"
], function(Menu, MenuItem, CheckedMenuItem, MenuSeparator, PopupMenuItem){
var pMenu;
pMenu = new Menu({
targetNodeIds: ["progmenu"]
});
...
...
pMenu.startup();
});
节点
<span id="progmenu">Right click me to get a menu</span>
但是我无法在我的项目中使用 Id。我需要使用附加点。如何通过附加点将菜单附加到节点?
最佳答案
Dojo 中的大多数地方都可以指定 DOM 节点的 id,您也可以指定节点本身作为替代方案,假设您可以获得对它的引用(就像附加点的情况一样)。
如果 progmenu 附加点引用一个小部件,则指向该小部件的 domNode。
pMenu = new Menu({
targetNodeIds: [this.progmenu.domNode]
});
如果附加点是 DOM 节点,请直接使用附加点,或任何包含对该节点的引用的变量。
pMenu = new Menu({
targetNodeIds: [this.progmenu]
});
另一个选择是使用 dijit/Menu .bindDomNode,使用相同的技巧来获取节点。
关于javascript - 如何在不使用 id 的情况下将 dijit/menu 附加到节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42256154/