Javascript 你到底要做什么?
我放置了Javascript 你到底要做什么?,javascript,extjs,extjs6,Javascript,Extjs,Extjs6,我放置了scrollIntoView(),以使网格滚动可见。当我在gridContainer中添加新网格时,我使用了这个方法。这是工作,我可以从调试器检查。 我的scrollIntoView() 但是,一旦它在延迟函数中到达,它就不会scrollIntoView()工作。谁能建议一下如何跳过这个。您应该做什么以及如何跳过此操作。我还使用了grid.focus(),同样的事情再次发生。网格正在进入视图,但从调试器中出来后,并没有显示在视图中 defer: function(fn, millis,
scrollIntoView()
,以使网格滚动可见。当我在gridContainer中添加新网格时,我使用了这个方法。这是工作,我可以从调试器检查。
我的scrollIntoView()
但是,一旦它在延迟函数中到达,它就不会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;
},
解决方法不是滚动到组件,而是使用用于中心容器的,并在其他卡上显示新网格
var centerCt; // reference to your center container
var centerLayout = centerContainer.getLayout();
var newGrid = Ext.create('Ext.grid.Panel', {});
centerCt.add(newGrid);
centerLayout.setActiveItem(newGrid);
我创建了一个。
延迟
本质上类似于设置超时
。但是我不太清楚你的问题的其余部分。没有足够的信息,是什么导致了推迟
呼叫?为什么不使用scroller APIgrid.body.dom
不适合滚动。我不能使用任何其他Api,因为“将此元素滚动到传递的容器中的视图中。”只能通过scrollIntoView
进行滚动,这听起来不太正确。网格体本身不可滚动。能否创建一个显示您的问题的网格?我正在使用vbox,当我更改为卡时,没有第二个网格正在加载。好吧,让我试试这个,不管你在回答中写了什么,过段时间再给你回复。这行不通,因为我现在只显示了一个网格。我需要我的面板可以滚动。
var centerCt; // reference to your center container
var centerLayout = centerContainer.getLayout();
var newGrid = Ext.create('Ext.grid.Panel', {});
centerCt.add(newGrid);
centerLayout.setActiveItem(newGrid);