我有什麼是一個單獨的dijit.Menu,其中包含標籤爲1 - 9的dijit.MenuItem對象。它連接到一個數獨81'節點'(因爲有這麼多,我不打擾個人身份證,我只是收集他們與dojo.query('他們的-CSS類名'))。這是我在一個小部件中用來實例化上下文菜單及其菜單項的代碼。Dojo彈出式菜單 - 將菜單項事件連接到多個「觸發」元素
var contextMenu = new dijit.Menu({targetNodeIds:dojo.query(".sudokuNode"), leftClickToOpen:true});
for(var i = 1; i <= 9; i++) {
contextMenu.addChild(new dijit.MenuItem({
label:i,
onClick: function(evt) {
//??
}
}));
};
contextMenu.startup();
我想要做的就是有被點擊的節點,隨後會打開一個彈出/上下文菜單,充滿了從上下文菜單的選擇的MenuItems的值(1-9)。
我的問題是,我不知道如何「知道」,這81個節點是觸發oncontextmenu事件之一,我不知道如何引用在聲明中的「onClick」方法內部節點菜單項。
任何幫助演示如何引用在這種情況下的調用節點,將不勝感激!如果這些信息不足,請告訴我還能做些什麼來解釋我的問題!
嗯,問題仍然是我想要在選擇菜單項時發生onClick。 evt.target是menuItem本身,封閉的小部件是菜單...這兩種都沒有給我任何方式去點擊(我知道)的節點... – Dfowj 2010-05-27 18:12:05
點擊的節點將是一個來自MenuItem模板的內部節點,所以你可能得不到你期望的。但是,您可以選擇dojo.connect到'onclick'DOM事件(N.B.而不是'onClick'這是一種小部件方法),而您需要檢查事件嗎? 您可能需要鏈接到您描述的此網格的示例,因爲我無法完全描繪它。 – 2010-06-03 08:43:19