2016-07-02 9 views
3

Я сделал тестовый случай Fiddle, чтобы воспроизвести мою проблему: событие select запускается дважды. Даже выборка делает это. Но cellclick запускается только один раз. Я использую ExtJS5.1.1 GPL.ExtJS5: TreePanel выбирает событие, стреляющее дважды

Внимание: сначала необходимо нажать кнопку загрузки (слева).

ответ

1

Это выглядит как ошибка ...

Безобразная обходной способ может использовать buffer. Вы можете настроить прослушиватель следующим образом:

select: { 
    buffer: 1, 
    fn: function(treepanel, record, index) { 
    console.log('select', index); 
    } 
} 
1

Слушатель дважды добавляется к событиям, это ошибка в Sencha Framework, относящаяся к заблокированному/нормальному древовидной структуре и фиксированная в 5.1.2. Кажется, что слушатель добавляется один раз к объекту-слушателю заблокированной сетки и один раз к объекту-слушателю нормальной сетки, и поскольку обе сетки используют один и тот же объект, этот объект будет содержать слушателя дважды.

Быстрое исправление, кажется, чтобы удалить select слушателя от слушателя конфигурации и добавить его к одному из только сетках:

Ext.ComponentQuery.query('viewport treepanel[isLocked=true]')[0].on('select', function(treepanel, record, index) { 
    console.log('select', index); 
});