Ext Js 6.2.1 classic grid 滾動條bug解決方案

此bug未在其餘版本發現,參考高版本代碼重寫類解決此bug,直接上代碼:ide

 1 /**
 2  * 若是列表同時存在橫向滾動條和豎向滾動條,當豎向滾動條滾動到底部時
 3  * 點擊橫向滾動條,滾動條會自動滾動到頂部
 4  * 6.2.1 bug修復
 5  */
 6 Ext.define('override.grid.NavigationModel', {
 7     override: 'Ext.grid.NavigationModel',
 8     //當列表被點擊時
 9     onContainerMouseDown: function (view, mousedownEvent) {
10         var me = this,
11         context = new Ext.grid.CellContext(view),
12         lastFocused,
13         position;
14         //執行Ext.grid.NavigationModel父類的同名方法
15         //執行此方法後若是點擊的是滾動條view.lastFocused的值會變爲scrollbar
16         //能夠由此判斷點擊的是滾動條仍是列表內容
17         //這樣就能解決這個bug
18         me.callSuper([view, mousedownEvent]);
19         lastFocused = view.lastFocused;
20         position = (view.actionableMode && view.actionPosition) || lastFocused;
21         //判斷點擊的元素是不是滾動條,若是是則不作任何操做
22         if (!position || lastFocused === 'scrollbar') {
23             return;
24         }
25 
26         context.setPosition(position.record, position.column);
27         mousedownEvent.position = context;
28         me.attachClosestCell(mousedownEvent);
29 
30         // If we are not already on that position, set position there. 
31         if (!me.position.isEqual(context)) {
32             me.setPosition(context, null, mousedownEvent);
33         }
34     }
35 });
相關文章
相關標籤/搜索