javascript - 如何在不使用 id 的情况下将 dijit/menu 附加到节点?

标签 javascript dojo

根据 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/

相关文章:

javascript - 初始化并比较 Javascript

git - 与项目一起对依赖项进行版本控制

javascript - Dojo 在动画完成时调整大小并删除元素

javascript - 当我使用间接选择在 dojo 中的增强网格中单击一行时,如何自动选中复选框

javascript - this.domNode 为空

javascript - 使用键和 jquery 在不同表中移动 tr

javascript - 在 Backbone 绑定(bind)中不正确

javascript - 如何将参数传递给函数并仍然访问事件以防止默认

javascript - 单击箭头将 5 个按钮的内容更改 +1 值

javascript - 如何排序道场/多选列表