Ext.menu.Menu():如何获得菜单的宽度(需要用偏移量显示)

Ext.menu.Menu() : How to get the width of the menu (needed to display it with offset)

本文关键字:显示 偏移量 菜单 Menu menu Ext 何获得      更新时间:2023-09-26

首先我使用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]);

任何想法?

谢谢吧!

丹尼尔。

显示菜单(这样它就会被渲染),获取它的宽度,然后重新定位:

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);