我想在上下文菜单上获取Dojo树的节点 id 。
我正在这样做Dojo的一棵树。这是id - 第一个参数。
this.setData(
[
{ id: '5', name:'root' , type:'continent' },
{ id: '6', name:'catalog 1', parent: '5' , type:'continent' },
{ id: '7', name:'catalog 2', parent: '5' , type:'continent' },
{ id: '8', name:'catalog 2.1', parent: '7' , type:'continent' },
{ id: '9', name:'child Catalog', parent: '8' , type:'continent' },
{ id: '10', name:'catalog 4', parent: '5' , type:'continent' } ]);
这是我的树和菜单初始化函数 因此,当我点击树上的右键时,会出现一个带按钮的上下文菜单。当我点击该按钮时 - 它会触发 onClick 功能。我希望收到 id 。
<script>
function createMyTree()
{
var tree = new dijit.Tree({
model: myModel,
id: 'contextMenu'
});
tree.placeAt("myTree", "last");
tree.startup();
pMenu = new dijit.Menu({
targetNodeIds:["contextMenu"]
});
pMenu.addChild(new dijit.MenuItem({
label:"Delete",
iconClass:"dijitEditorIcon dijitEditorIconDelete",
onClick: function(){
/// HERE I WANT MY id
}
}));
pMenu.startup();
}
我该怎么做?
答案 0 :(得分:0)
之前我没有使用过dojo,但我认为你应该在onclick上使用contextmeu事件。从那里你可以获得target
或relatedTarget
并使用button
属性(按下鼠标按钮的类型;可能是2)进行检查。
如果这不能为您提供有效元素,则可以使用event.screenX
和event.screenY
中的document.elementFromPoint(x,y)
来获取有效元素。
答案 1 :(得分:0)
我发现了.. 多谢你们。如果您有更好的建议,请分享。 :)
var selectedObject = tree.get("selectedItems")[0];
console.log("the id what I need", selectedObject.id);
答案 2 :(得分:0)
选择器:&#39; .dijitTreeNode&#39;在菜单配置选项中。