此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的值会变为scrollbar16 ????????//可以由此判断点击的是滚动条还是列表内容17 ????????//这样就能解决这个bug18 ????????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解决方案
原文地址:http://www.cnblogs.com/mlzs/p/7730450.html