如何在dojo树中右键单击上下文菜单中获取id?

时间:2013-05-13 14:58:16

标签: javascript tree contextmenu dojo

我想在上下文菜单上获取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();
}

我该怎么做?

3 个答案:

答案 0 :(得分:0)

之前我没有使用过dojo,但我认为你应该在onclick上使用contextmeu事件。从那里你可以获得targetrelatedTarget并使用button属性(按下鼠标按钮的类型;可能是2)进行检查。

如果这不能为您提供有效元素,则可以使用event.screenXevent.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;在菜单配置选项中。