Sencha всплывает при нажатии на элемент списка

В моем приложении у меня есть список. Я хочу показать всплывающее окно (наложение) при нажатии на элемент. Это работает для некоторых элементов, но для некоторых элементов наложение переходит прямо к элементу списка.

Примечание. Я хочу показать наложение со стрелкой, указывающей на текущий выбранный элемент. Вот мой код:

var overlay = new Ext.Panel({
       floating: true,
       modal: true,
       width: 100,
       height: 100,
       scroll: false});

var list = Ext.extend(Ext.List, {

   store: myStore,
   itemTpl: "{firstName} {lastName}",

   listeners:  {
        itemtap: function (list, index, element, event) {
        // Grab a reference the record.
        var record = list.getRecord(element);

        // First, we update the the overlay with the proper record (data binding).  
        overlay.update(record.data);
        overlay.showBy(element, 'fade'); 
        list.doComponentLayout();           
    }
}});

Проблема может заключаться в том, что я неправильно получаю элемент списка. Я просто использовал текущий элемент здесь. Я также пробовал list.getNode(index), но он делает то же самое. Может ли кто-нибудь направить меня в правильном направлении?

Тарун.


person tarun_sharma    schedule 20.10.2011    source источник


Ответы (2)


просто добавьте false к показу по функции, т.е. overlay.showBy(element, 'fade',false);

http://docs.sencha.com/touch/1-1/#!/api/Ext.Panel-method-showBy

person ilija139    schedule 20.10.2011
comment
Ой! какая же я дура.. спасибо лья. - person tarun_sharma; 20.10.2011
comment
Решение сработало идеально, но когда я расширил свою панель, чтобы иметь кнопки в макете vbox, высота отображаемой панели уменьшалась случайным образом. т. е. для некоторых элементов он идеально отображается с панелью со стрелками и тремя кнопками, расположенными вертикально, но для некоторых элементов, особенно элементов внизу списка, высота панели уменьшается ?? Я не могу распознать это случайное поведение. - person tarun_sharma; 21.10.2011

Вот код моей панели.

var overlay = new Ext.Panel({
// We'll set the image src attribute's value programmatically.
//dock:'left',
floating: true,
modal: true,
width: 138,
height: 140,
scroll: false,
layout: {
    type: 'vbox',
    align:'center',
    pack:'center'
},
//defaults:{flex:1},
items:[
    {xtype: 'spacer'},
    {
            xtype: 'button',
            ui:'action',
            height:30,
            width:103,
            id: 'profileButton',
            text: 'Profile'
    },
    {xtype: 'spacer'},
    {
        xtype: 'button',
        ui:'action',
        height:30,
        width:103,
        id: 'positionsButton',
        text: 'Positions'
    },
    {xtype: 'spacer'},
    {
        xtype: 'button',
        ui:'action',
        height:30,
        width:103,
        id: 'actionButton',
        text: 'Action'
    },
    {xtype: 'spacer'}
]});
person tarun_sharma    schedule 21.10.2011