如何在屏幕上移动小部件?

时间:2011-10-31 15:28:06

标签: menu dojo positioning

每当用户点击特定的dom元素时,我都会显示一个Menu小部件,但我想要MenuBar。最好的方法是什么?我尝试将点击处理程序附加到相关的DOM元素并让点击处理程序显示Menu,但我只能在原始声明性标记所在的区域显示Menu渲染。我根本无法让它移动。我正在尝试使用dojo.style(myWidget.domNode, 'top', calculatedTop)(与'left'等效)。我错过了什么(显而易见的事情)?

感谢。

1 个答案:

答案 0 :(得分:2)

由于您使用的是dijit的默认menu widget,我认为您只需在菜单小部件(reference)上指定属性targetNodeIds即可定义上下文菜单的位置相关:

targetNodeIds (Defined by dijit.Menu)
    Array of dom node ids of nodes to attach to. Fill this with nodeIds upon widget creation and it becomes context menu for those nodes.

要在左键单击显示弹出窗口,我相信您要使用该属性leftClickToOpen

// leftClickToOpen: [const] Boolean
//      If true, menu will open on left click instead of right click, similiar to a file menu.
//defaults to false
leftClickToOpen: false,

以声明方式指定它看起来像:

<div data-dojo-type="dijit.Menu" data-dojo-props="targetNodeIds: ['nodeId1','nodeId2','nodeId3'], leftClickToOpen:true"
        style="display: none;">
<!-- Your content here -->
</div>