1. 程式人生 > >Ext Js 6.2.1 classic grid 滾動條bug解決方案

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

efi 父類 滾動 cti seq position column spa 元素

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

 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 });

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