我做了一个Fiddle测试用例来重现我的问题:select事件被触发两次。即使是选择改变也是如此。但是,单击只会被触发一次。 我使用ExtJS5.1.1 GPL。
注意:必须先点击加载按钮(左侧)。
答案 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);
}
}