Dojo Popup菜单 - 将菜单项事件连接到多个“触发”元素

时间:2010-05-26 20:16:17

标签: dojo contextmenu

我拥有的是一个dijit.Menu,它包含标签为1 - 9的dijit.MenuItem对象。它连接到一个数独的81'节点网格的数独(因为有这样的网格)很多,我不打扰个人id,我只是用dojo.query('他们的css-class-name'))收集它们。这是我在窗口小部件中使用的代码,用于实例化上下文菜单及其菜单项。

    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'中引用该节点在菜单项中声明的方法。

任何帮助演示如何在该上下文中引用调用节点将不胜感激!如果这还不够,请告诉我我还能做些什么来解释我的问题!

1 个答案:

答案 0 :(得分:0)

evt.target应该为您提供实际点击的节点。根据结构的不同,您可能需要从那里进行其他导航,或使用dijit.getEnclosingWidget()

如果MenuItems允许事件冒泡(我不确定;我自己没有使用过),你可以连接到菜单的onClick()方法,所以你只获得了单个事件听众在玩耍。