私の未経験を許していますが、ここでは問題があります。私はそれらのうちの1つで2つの関数を呼び出しています.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'(これはFirebugを通して見るものです)、以前に作成したvar 'self'を使用しても動作しません。これはスコープ内にないため、Firebugは変数を表示しませんコールバック関数の中では 'self'です。もちろん、試してみるとうまくいきません。
アイデア?それ以上の精緻化は必要ですか?
もし 'self'がスコープ内になければ' self.something'をしようとするとエラーになります。多分あなたの問題は他に何かありますか? – hugomg