javascript - defer 到底做什么?

标签 javascript extjs extjs6

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

grid.body.dom.scrollIntoView();

但是一旦它到达 defer 函数,它就不会 scrollIntoView() 运行。任何人都可以建议如何跳过这个。 defer 做什么以及如何跳过它。我也在使用 grid.focus() 并且再次发生同样的事情。网格正在进入 View ,但在从调试器中出来后没有显示在 View 中。

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 - defer 到底做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41930900/

相关文章:

javascript - npm启动后如何自动分离js文件和ts文件?

ExtJS:我们如何在网格中获取商店的大小

javascript - 如何在 ExtJs 6 中使用 tabpanel 制作可折叠的侧边栏

javascript - 从字符串中的变量中提取值

java - 如何计算起始值和结束值之间存在的元素?

javascript - 在 JS 用于显示更多内容后,将背景 div 保持为 100% 宽度和高度

linux - 在 RHEL 服务器上部署 ExtJS

javascript - ExtJs 转换某些有效的

javascript - 更改字段名称动态 extjs 6

javascript - 如何在缓冲网格中设置加载存储