首先我使用的是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]);
有什么想法吗?
提前致谢!
丹尼尔。
答案 0 :(得分:1)
显示菜单(因此它将被渲染),获取其宽度,然后重新定位:
menu.showAt(0,0);
var menuWidth = menu.width;// how can i really get the width?
var left = window.event.clientX-menuWidth ;
var top = window.event.clientY;
menu.setPosition(left,top);
或者使用固定的配置宽度。