问题描述:
当grid左右宽度超过屏幕时会出现水平滚动条,将水平滚动条拖到最右边,点击gird中一行,回发现gird左右抖动/晃动/闪动/摇动一下,应该是焦点处理的问题,只有在IE下有问题,其他浏览器未发现该问题,官网上也提到这个问题,下面将该问题的解决方式代码记录下来:
//重写Ext.view.Table的onRowFocus函数,解决IE下列表界面抖动问题
Ext.override(Ext.view.Table, {
onRowFocus: function(rowIdx, highlight, supressFocus) {
var me = this;
if (highlight) {
me.addRowCls(rowIdx, me.focusedItemCls);
if (me.isRowStyleFirst(rowIdx)) {
me.getRowStyleTableEl(rowIdx).addCls(me.tableFocusedFirstCls);
} else {
me.addRowCls(rowIdx - 1, me.beforeFocusedItemCls);
}
if (!supressFocus) {
if(!Ext.isIE){
me.focusRow(rowIdx);
}
}
} else {
me.removeRowCls(rowIdx, me.focusedItemCls);
if (me.isRowStyleFirst(rowIdx)) {
me.getRowStyleTableEl(rowIdx).removeCls(me.tableFocusedFirstCls);
} else {
me.removeRowCls(rowIdx - 1, me.beforeFocusedItemCls);
}
}
if ((Ext.isIE6 || Ext.isIE7) && !me.ownerCt.rowLines) {
me.repaintRow(rowIdx)
}
}
});