Javascript 如何防止单击单元格时extjs网格滚动?
我目前正在使用基于可编辑网格示例的extjs4的网格组件。我想有一个与每个单元格关联的链接,这样当我点击一个单元格时,它会将我带到另一个页面。但是,当单击链接时,页面上会触发垂直滚动 e、 g.尝试减小的大小,第一次单击网格将滚动页面,使网格位于中心,事件被吞没。您必须再次单击才能注册cellclick事件。这只发生在IE中(我使用的是版本8)。好消息是,这不会发生在其他浏览器上,这可能是一个bug,有没有办法防止第一次滚动动作发生Javascript 如何防止单击单元格时extjs网格滚动?,javascript,extjs,extjs4,Javascript,Extjs,Extjs4,我目前正在使用基于可编辑网格示例的extjs4的网格组件。我想有一个与每个单元格关联的链接,这样当我点击一个单元格时,它会将我带到另一个页面。但是,当单击链接时,页面上会触发垂直滚动 e、 g.尝试减小的大小,第一次单击网格将滚动页面,使网格位于中心,事件被吞没。您必须再次单击才能注册cellclick事件。这只发生在IE中(我使用的是版本8)。好消息是,这不会发生在其他浏览器上,这可能是一个bug,有没有办法防止第一次滚动动作发生 谢谢这可能与此问题类似: 试位:相对;在网格周围的容器上缩放:
谢谢这可能与此问题类似:
试位:相对;在网格周围的容器上缩放:1,以使其具有布局我遇到了相同的问题,并在Sencha讨论板上找到了解决方案 添加此代码确实对我有用:
selModel: Ext.create('Ext.selection.Model', { listeners: {} }),
更多信息:
试试这个补丁
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);
}
});
今天我在ExtJS 4.2中遇到了同样的问题,早期的解决方案对我不起作用,在gridpanel上使用此配置完全解决了这个问题:
viewConfig: {
focusRow: Ext.emptyFn
}
例如:
Ext.create('Ext.grid.Panel', {
title: 'Simpsons',
store: Ext.data.StoreManager.lookup('simpsonsStore'),
viewConfig: {
focusRow: Ext.emptyFn
}
columns: [
{ text: 'Name', dataIndex: 'name' },
{ text: 'Email', dataIndex: 'email', flex: 1 },
{ text: 'Phone', dataIndex: 'phone' }
],
height: 200,
width: 400,
renderTo: Ext.getBody()
});
不幸的是,应用与Extjs版本3相同的修复程序在4中不起作用。我在Chrome 12和Extjs 4.0.2中遇到了同样的问题。只有当网格高于页面时才会发生这种情况。我注意到在Ext 4.1.1中,这可以防止在基于WebKit的浏览器中滚动,但在IE中则不行。这对我有效:不工作>>不工作: