Простите мою неопытность, но вот в чем проблема: у меня есть 2 функции с одним из них, вызывающим .getJSON, и мне нужно вызвать 2-ю функцию из обратного вызова 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()» Я пытаюсь получить доступ a 'myFunction2' внутри запроса XHR (это то, что я вижу через firebug), и использование var 'self', которое я создаю раньше, не работает либо потому, что это не в области, я думаю, firebug не показывает никакой переменной «self», когда внутри функции обратного вызова, и, конечно, это просто не работает, когда я пытаюсь это сделать.
Любые идеи? нужна ли дальнейшая разработка?
Если 'self' не были в области, вы получили бы ошибку при попытке выполнить' self.something'. Может быть, ваша проблема - это что-то еще? – hugomg