2011-06-09 25 views

回答

1

我認爲這將工作:

var contextMap = {} 
dojo.provide('menu'); 
dojo.declare('menu', [dijit.Menu] , { 
bindDomNode : function(a,b,c){ 
this.inherited(arguments); 
contextMap[a] = this; 
console.log(contextMap) 
} 
}) 

更新的解決方案通過powtac:
這個作品!我在菜單實例化之前運行它。訣竅是使用same superClass as className,在這種情況下'dijit.Menu'爲字符串。

dojo.ready(function() { 
    dojo.declare('dijit.Menu', [dijit.Menu], { 
     bindDomNode: function(a,b,c) { 
      this.inherited(arguments); 
      console.log(a); 
     }, 
    }) 
}) 

// ... 
menu = new dijit.Menu(...); // when called the the event is caught 
           // and runs into the console.log(a); 
+0

菜單添加到DOM後,我可以運行它嗎? – powtac 2011-06-11 12:52:05

+0

似乎不工作。 :(contextMap是空的 – powtac 2011-06-21 13:10:38

+0

找到了一個解決方案!謝謝你rajkamal!我用我改編的代碼更新了你的答案...... – powtac 2011-06-21 13:30:30

0

爲什麼看通過DOM尋找的東西,有連接時,你可以只是看在所有的dijit.Menu部件的東西呢?

您還可以輕鬆地擴展dijit.Menu小部件並添加自定義信號作爲窗口小部件創建過程的一部分。

+0

我怎麼能這樣做? – powtac 2011-06-10 11:55:37