在 IE7 中,第一次单击网格会导致 ExtJS Ext.grid.GridPanel 跳转到页面顶部
Posted
技术标签:
【中文标题】在 IE7 中,第一次单击网格会导致 ExtJS Ext.grid.GridPanel 跳转到页面顶部【英文标题】:In IE7 the first click on a grid causes an ExtJS Ext.grid.GridPanel to jump to the top of the page 【发布时间】:2011-05-13 15:43:50 【问题描述】:我有一个使用数组馈送 ExtJS gridPanel 的奇怪问题 - 仅在 IE7 中,在触发 rowclick 事件之前,当我单击一行时,页面向上滚动 2-3 行。在重复点击时,页面会向上滚动,直到页面位于页面顶部。然后只有 rowclicks 被传递给我的处理程序。 我在这个网格上只注册了两个听众:
听众: rowclick:函数(网格,rowIndex,e) ...我的处理程序 , 排序变化:函数(网格,行索引,e)你有什么想法吗?
【问题讨论】:
How to prevent extjs grid from scrolling when clicking on a cell?的可能重复 【参考方案1】:我在 Internet Explorer 7 中遇到过类似的错误。对我来说 zoom:1;位置:相对;在周围容器上有助于强制布局属性。
【讨论】:
谢谢!我遇到了与 OP 相同的问题,但在 Internet Explorer 8 中。在父容器上使用 CSS 解决了问题,但只有当我也将代码切换为使用网格的select
事件时;我之前一直在使用itemclick
事件,即使使用 CSS,它仍然具有相同的不良行为。顺便说一下,这是使用 ExtJS 4.0.7。【参考方案2】:
试试这个补丁
Ext.override(Ext.selection.RowModel,
onRowMouseDown: function(view, record, item, index, e)
//IE fix: set focus to the first DIV in selected row
Ext.get(item).down('div').focus();
if (!this.allowRightMouseSelection(e))
return;
this.selectWithEvent(record, e);
);
实际上,任何“可聚焦”元素都可以使用(tr 和 td 不是)。
【讨论】:
以上是关于在 IE7 中,第一次单击网格会导致 ExtJS Ext.grid.GridPanel 跳转到页面顶部的主要内容,如果未能解决你的问题,请参考以下文章