2016-07-02 130 views
3

我做了一個Fiddle測試用例來重現我的問題:select事件被觸發兩次。即使是選擇變化也是如此。但cellclick只被解僱一次。 我使用ExtJS5.1.1 GPL。ExtJS5:TreePanel選擇事件觸發兩次

注意:必須先點擊Load按鈕(在左邊)。

回答

1

這看起來像一個bug ......

醜陋解決方法可以使用buffer。你可以像這樣設置收聽者:

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

監聽器被添加到事件兩次,這是Sencha框架中與鎖定/正常treegrid相關的錯誤,並在5.1.2中修復。看起來好像偵聽器一次添加到鎖定網格的偵聽器對象,一次添加到正常網格的偵聽器對象,並且由於兩個網格使用同一個對象,該對象將包含偵聽器兩次。

速戰速決似乎是從聽者的配置中刪除select監聽器,並把它添加到只有電網之一:

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