Menu 如何在屏幕上移动小部件?
我有一个Menu 如何在屏幕上移动小部件?,menu,dojo,positioning,Menu,Dojo,Positioning,我有一个菜单小部件,我想在用户单击特定dom元素时显示它,但我不想要菜单栏。最好的方法是什么?我已经尝试将单击处理程序附加到相关的DOM元素,并让单击处理程序显示菜单,但我只能让它在原始声明性标记将呈现的区域中显示菜单。我根本无法让它移动。我正在尝试使用dojo.style(myWidget.domNode,'top',calculatedTop)(以及与'left'等效的)。我遗漏了什么(明显的东西) 谢谢。由于您使用的是dijit的默认设置,我认为您只需要在菜单小部件()上指定属性targe
菜单
小部件,我想在用户单击特定dom元素时显示它,但我不想要菜单栏
。最好的方法是什么?我已经尝试将单击处理程序附加到相关的DOM元素,并让单击处理程序显示菜单
,但我只能让它在原始声明性标记将呈现的区域中显示菜单
。我根本无法让它移动。我正在尝试使用dojo.style(myWidget.domNode,'top',calculatedTop)
(以及与'left'等效的)。我遗漏了什么(明显的东西)
谢谢。由于您使用的是dijit的默认设置,我认为您只需要在菜单小部件()上指定属性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>
这听起来很有希望,但我有几个问题:如何使用声明式样式指定它?当用户点击某个区域而不是右键点击时,我如何触发它?如果这是显而易见的东西,很抱歉,但我在Dojo是一个彻头彻尾的n00b。我应该做些什么来让数据Dojo类型
工作吗?如果我使用它而不是dojoType
,我的渲染会完全失控(从左上到右下的阶梯)。还有,有没有一种方法可以让菜单在hover(一种基于CSS的滚动菜单)上打开?谢谢。我不相信有任何内置的对滚动的支持,尽管在继承dijit.Menu属性的小部件中实现它可能不会太困难。您能在jsfiddle.net之类的东西上发布一个小的问题示例吗?我将尝试将该文件编辑成一个小的可复制的测试用例,然后返回给您。在此之前,它本质上是一个具有一些不同输入类型、导航菜单和(自定义、公司)主题的表单。如果我使用dojoType
,一切正常,但是如果我使用数据dojo类型
,那么我就得到了stairstep效果。顺便说一句,感谢所有的帮助,[EnterpriseDojo]()都有了创建dojo小部件的良好开端。