2017-02-15 27 views
0

根據Dojo文檔dijit/menu ,您可以通過指定節點的ID將菜單附加到節點。就像他們的榜樣如何在不使用id的情況下將dijit/menu附加到節點?

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在我的項目。我需要使用附加點。如何通過附加點將菜單附加到節點?

回答

4

Dojo中的大多數地方可以指定DOM節點的ID,您可以指定節點本身作爲替代方案,假設您可以獲得對它的引用(就像附着點一樣)。

如果progmenu連接點指向一個小部件,則指向該小部件的domNode。

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

如果連接點是一個DOM節點,則直接使用連接點或任何變量包含對該節點的引用。

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

另一種選擇是使用dijit/Menu .bindDomNode,使用同樣的招數去的節點。

相關問題