究竟是什么延迟呢?

时间:2017-01-30 07:35:57

标签: javascript extjs extjs6

我放置scrollIntoView()以使网格滚动可见。当我在gridContainer中添加新网格时,我使用此方法。这工作我可以从调试器检查。 我的scrollIntoView()

grid.body.dom.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;
},

1 个答案:

答案 0 :(得分:3)

解决方法不是滚动到组件,而是使用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