我放置了scrollIntoView()
以使网格滚动可见。当我在gridContainer中添加新网格时,我使用了这种方法。我可以从调试器检查此工作。
我的scrollIntoView()
grid.body.dom.scrollIntoView();
但是,一旦到达defer函数,它就不会
scrollIntoView()
运行。任何人都可以建议如何跳过此操作。推迟执行什么操作以及如何跳过此操作。我也在使用grid.focus()
,同样的事情又发生了。网格已进入视野,但从调试器出来后却没有视野。defer: function(fn, millis, scope, args, appendArgs) {
fn = Ext.Function.bind(fn, scope, args, appendArgs);
if (millis > 0) {
return setTimeout(function() {
if (Ext.elevateFunction) {
Ext.elevateFunction(fn);
} else {
fn();
}
}, millis);
}
fn();
return 0;
},
最佳答案
解决方法不是滚动到组件,而是将card layout用于中心容器并在另一张卡上显示新的网格。
var centerCt; // reference to your center container
var centerLayout = centerContainer.getLayout();
var newGrid = Ext.create('Ext.grid.Panel', {});
centerCt.add(newGrid);
centerLayout.setActiveItem(newGrid);
我创建了一个Sencha Fiddle。
关于javascript - 究竟推迟了什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41930900/