Ext.menu.Menu (): Как получить ширину меню (необходимо отобразить его со смещением) - PullRequest
0 голосов
/ 18 октября 2011

Прежде всего, я использую 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]);

Любые идеи?

Спасибо вперед!

Daniel.

1 Ответ

1 голос
/ 04 ноября 2011

Показать меню (чтобы оно отображалось), получить его ширину и затем переместить:

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

Или используйте фиксированную ширину конфигурации.

...