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 API
grid.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);