Ext.menu.Menu() :如何获取菜单的宽度(需要用偏移量显示)
首先,我使用的是 ext-3.3.1
我使用 Ext.menu.Menu() 构建了一个上下文菜单,并用这样的项目填充它:
menu.addMenuItem({
text : TaskGeneralBaseds[i].getAttribute("Name"),
templateTypeID : templateTypeID,
taskType : taskType,
scope : this,
listeners : {
click : {
fn : this.extAddTaskClicked
}
},
icon:g ? g : null
});
然后我像这样显示菜单,
var left = window.event.clientX;
var top = window.event.clientY;
menu.showAt([left,top]);
现在的事情是我想显示它带有偏移量,就好像它是从右到左显示,而不是从左到右显示(我已经解决了所有其他 RTL 问题) 所以如果我有菜单的宽度我可以做这样的事情:
var menuWidth = menu.width;// how can i really get the width?
var left = window.event.clientX-menuWidth ;
var top = window.event.clientY;
menu.showAt([left,top]);
有什么想法吗?
先谢谢了!
丹尼尔.
First of all I'm using ext-3.3.1
I built a context menu using Ext.menu.Menu() and populated it with items like this:
menu.addMenuItem({
text : TaskGeneralBaseds[i].getAttribute("Name"),
templateTypeID : templateTypeID,
taskType : taskType,
scope : this,
listeners : {
click : {
fn : this.extAddTaskClicked
}
},
icon:g ? g : null
});
and than i display the menu like this
var left = window.event.clientX;
var top = window.event.clientY;
menu.showAt([left,top]);
now the thing is that i want to display it with offset as if it was displayed from right to left and not from left to right (I already took care of all the other RTL issues)
so if i had the width of the menu i could do something like this:
var menuWidth = menu.width;// how can i really get the width?
var left = window.event.clientX-menuWidth ;
var top = window.event.clientY;
menu.showAt([left,top]);
Any ideas?
Thanks ahead!
Daniel.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
显示菜单(这样它将被渲染),获取其宽度然后重新定位:
或使用固定的配置宽度。
Show the menu (so it will be rendered), get its width and then relocate:
Or use a fixed config width.