原諒我的經驗,但這裏的問題,我有一些2個函數,其中1個調用.getJSON,我需要從第一個函數的getJSON回調中調用第二個函數..我有很多麻煩。JavaScript,範圍問題...不是非常有經驗的javascript
下面是正在進行的簡化版本。
MyDialog.Widget.prototype._myFunction1 = function(data) {
var self = this;
var renderEntry = function(tr,booltf) {
$('<a href="javascript:{}"> </a>')
.addClass("iconbutton")
.appendTo(tr.insertCell(0))
.click(function() {
$.getJSON(
"/command/button",
null,
function(data) {
self.myFunction2(); //self isn't in scope?
//this.myFunction2(); //this is actually 'this' for XHR request
},
"json"
);
});
//more code here (including the invoking of renderEntry()
}
MyDialog.Widget.prototype.myFunction2 = function()
{
//Ton of code
}
的問題是在.getJSON的回調函數,我想打電話給myFunction2但使用「this.myFunction2()」我不能把它稱之爲......我想訪問XHR請求中的'myFunction2'(這就是我通過螢火蟲看到的),並且使用我以前創建的var'self'不工作,或者因爲它不在範圍內,我認爲,螢火蟲不顯示任何變量'self'在回調函數中時,當然當我嘗試使用時它不起作用。
任何想法?還需要更詳細的說明嗎?
如果'self'不在範圍內,則在嘗試執行'self.something'時會出現錯誤。也許你的問題是別的? – hugomg 2011-05-01 18:18:37