은 1 - 9의 레이블이있는 dijit.MenuItem 개체가 포함 된 하나의 dijit.Menu입니다. 81 개의 'nodes'(너무 많은 것들이 있기 때문에 개인 ID가 필요 없다. 간단히 dojo.query ('their-css-class-name')로 수집한다. 이것은 위젯 내부에서 컨텍스트 메뉴와 해당 메뉴 항목을 인스턴스화하는 데 사용하는 코드입니다. 내가을 할 노력하고있어 무엇Dojo Popup Menus - 메뉴 항목 이벤트를 여러 '트리거링'요소에 연결
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();
은 클릭 노드를 가지고 있으며, 이후 상황에 맞는 메뉴의 메뉴 아이템에서 선택된 값 (1-9)로 채워질 수있는 팝업/컨텍스트 메뉴를 엽니 다.
내 문제 내 문제는 "알고"하는 방법을 알고있는 노드 중 하나는 oncontextmenu 이벤트를 발생시키는 것이고, 그 노드를 참조하는 방법을 모르는 'onClick'메서드는 메뉴 아이템.
해당 컨텍스트에서 호출 노드를 참조하는 방법을 보여주는 도움이 감사하겠습니다! 이것이 충분한 정보가 아니라면, 내 문제를 설명하기 위해 내가 할 수있는 다른 것을 알려주십시오!
음, 문제는 메뉴 항목을 선택할 때 onClick이 발생하도록하려는 것입니다. evt.target은 menuItem 자체이며 둘러싼 위젯은 메뉴입니다 ... 어느 쪽이 나에게 클릭 한 노드에 도달 할 수있는 방법을 제공하지 않습니다 ... – Dfowj
클릭 한 노드는 내부 노드를 MenuItem 템플릿에서 가져 와서 예상 한 결과를 얻지 못할 수도 있습니다. 그러나 'onclick'DOM 이벤트 (위젯 메서드 인 'onClick'이 아니라 N.B.)에 dojo.connect를 연결하여 검사 할 수 있도록 할 수 있습니다. 그림 그리기 어려운 그리드의 예에 링크해야 할 수도 있습니다. –