目标函数没有方法延缓

问题描述:

我尝试呈现在网格(Ext JS的)一个进度条,并得到这个错误:目标函数没有方法延缓

Object function has no method defer

这是什么“神奇”的方法?它有什么作用?为什么没有找到? 代码:

renderer: function (value, meta, rec, row, col, store){ 
    var id = Ext.id(); 
    (function(){ 
     new Ext.ProgressBar({ 
      renderTo: id, 
      value: 0.5 
     }); 
    }).defer(25); 
    return '<span id="' + id + '"></span>'; 
} 

功能defer用来延迟通过X毫秒的函数调用:当你从浏览器的命令行运行该代码你得到同样的错误。尝试这样的语法:

Ext.Function.defer(function(){ 
    new Ext.ProgressBar({ 
     renderTo: id, 
     value: 0.5 
    }); 
}, 25); 

这应该根据ExtJS API documentation工作。

+1

并感谢链接到文档;) – Kein 2011-04-17 12:22:57

+0

如果您使用Sencha Touch,它将是'Ext.defer(function(){...},25);' - 如果有人花了很长时间来狩猎就像我刚才那样! – bjudson 2011-09-20 23:35:14

您正在使用哪个版本的ExtJS?

你确定你已经加载了所有的ExtJS吗?

(function(){alert("Hello");}).defer(1000); 
+0

我只使用示例bootstrap.js。其他示例工作,但是在命令行中出现代码不工作 - 同样的错误。可能是我需要一些Ext.require()? – Kein 2011-04-17 00:19:54

+0

ExtJS 4的版本4 – Kein 2011-04-17 00:45:26

+2

ExtJS 4的许多变化 - 不希望以前的版本的例子工作。本地JavaScript对象不再被扩展。 defer()现在是Ext.Function的一部分,而不是本地函数的一部分。试试Tommy发布的例子。 – 2011-04-17 09:45:36

Ext.defer或Ext.function.defer是一个类似于javascript setTimeout函数的函数。

http://astutejs.blogspot.in/2015/06/extjs-what-is-extdefer.html