我做了一個Fiddle測試用例來重現我的問題:select事件被觸發兩次。即使是選擇變化也是如此。但cellclick只被解僱一次。 我使用ExtJS5.1.1 GPL。ExtJS5:TreePanel選擇事件觸發兩次
注意:必須先點擊Load按鈕(在左邊)。
我做了一個Fiddle測試用例來重現我的問題:select事件被觸發兩次。即使是選擇變化也是如此。但cellclick只被解僱一次。 我使用ExtJS5.1.1 GPL。ExtJS5:TreePanel選擇事件觸發兩次
注意:必須先點擊Load按鈕(在左邊)。
這看起來像一個bug ......
醜陋解決方法可以使用buffer
。你可以像這樣設置收聽者:
select: {
buffer: 1,
fn: function(treepanel, record, index) {
console.log('select', index);
}
}
監聽器被添加到事件兩次,這是Sencha框架中與鎖定/正常treegrid相關的錯誤,並在5.1.2中修復。看起來好像偵聽器一次添加到鎖定網格的偵聽器對象,一次添加到正常網格的偵聽器對象,並且由於兩個網格使用同一個對象,該對象將包含偵聽器兩次。
速戰速決似乎是從聽者的配置中刪除select
監聽器,並把它添加到只有電網之一:
Ext.ComponentQuery.query('viewport treepanel[isLocked=true]')[0].on('select', function(treepanel, record, index) {
console.log('select', index);
});