我的回调代码(js文件)类似于
function addcontent(Title, tUrl, bURL, Id,purl){
alert(Id)
var runcontent = new Ext.Panel({
id: 'tt' + Id,
region: 'center',
autoLoad: {
url: tUrl,
callback: function(el){
addwindow(el, Id, bURL,purl);
},
scripts: true,
nocache: true
},
width: 600,
collapsible: false
});
}
function addwindow(el, Id, bURL,purl) {
//alert(el);
alert("add buttons " +{Id);
}
我的问题是调用函数不会添加窗口。当我在 addcontent 中提醒“Id”时,它会显示,但不会显示 addwindow,因为控件不会移动到 addwindow。 我如何跟踪/跟踪阻止控件移动到 addwindow 上的异常是什么。?
最佳答案
使用参数创建回调的正确方法是使用 createCallback
或createDelegate
。您的函数(显然)在全局范围内执行,因此不会产生太大的实际差异,但 createDelegate 允许您的回调在与原始函数相同的范围内执行,这使其成为最佳默认选择通常。所以它会是这样的:
autoLoad: {
url: tUrl,
callback: addwindow.createDelegate(this, [Id, bURL,purl]),
scripts: true,
nocache: true
},
再次请注意,您的情况中的 this
将是全局 Window 对象,但这仍然是一个很好的实践,以便将来在类方法中执行相同的操作将按预期工作。
关于javascript - 使用extjs在javascript中回调函数的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4050789/