我放置了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/

10-12 03:24