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

时间:2017-02-15 17:22:14

标签: javascript dojo

根据dijit/menu的Dojo文档 您可以通过指定节点的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。我需要使用附加点。如何通过附加点将菜单附加到节点?

1 个答案:

答案 0 :(得分:4)

在Dojo中您可以指定DOM节点的id的大多数位置,您可以指定节点本身作为替代,假设您可以获得对它的引用(与附加点的情况一样)。

如果progmenu附加点引用窗口小部件,请指向窗口小部件的domNode。

pMenu = new Menu({
    targetNodeIds: [this.progmenu.domNode]
});

如果附加点是DOM节点,请直接使用附加点,或者包含对节点的引用的任何变量。

pMenu = new Menu({
    targetNodeIds: [this.progmenu]
});

另一个选择是使用dijit/Menu。bindDomNode,使用相同的技巧到达节点。

相关问题