ExtJS5:TreePanel选择事件触发两次

时间:2016-07-02 15:16:59

标签: extjs extjs5

我做了一个Fiddle测试用例来重现我的问题:select事件被触发两次。即使是选择改变也是如此。但是,单击只会被触发一次。 我使用ExtJS5.1.1 GPL。

注意:必须先点击加载按钮(左侧)。

2 个答案:

答案 0 :(得分:1)

将侦听器添加到事件中两次,这是Sencha Framework中与锁定/正常treegrid相关的错误,并在5.1.2中修复。看起来好像将侦听器一次添加到锁定网格的侦听器对象,一次添加到普通网格的侦听器对象,并且因为两个网格都使用同一个对象,该对象将包含两次侦听器。

快速修复似乎是从侦听器配置中删除select侦听器并将其添加到其中一个网格中:

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

答案 1 :(得分:1)

这看起来像个错误......

丑陋的解决方法可以使用buffer。您可以像这样设置监听器:

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