2017-02-15 7 views
0

dijit/menu のDojo文書によれば、ノードの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

DOMノードのIDを指定できるDojoのほとんどの場所では、(アタッチポイントの場合のように)参照を取得できると仮定して、ノード自体を代替として指定できます。

プログメニューアタッチポイントがウィジェットを参照する場合は、ウィジェットのdomNodeをポイントします。

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

アタッチポイントがDOMノードの場合は、アタッチポイントを直接使用するか、ノードへの参照を含む変数を使用します。

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

別のオプションは、ノードに到達するために、同じトリックを使用して、dijit/Menu .bindDomNodeを使用することです。

関連する問題