jQuery срабатывание callback функции в классе при $.ajax запросе.

melo

однажды
jQuery срабатывание callback функции в классе при $.ajax запросе.

Привет.
У меня есть класс на js, в котором через jquery осуществляется ajax запрос.
PHP:
ajax : function(form) {
               var params = $(form).serialize();
               $.ajax({type: "POST",
                       url: this.modal,
                       data: params,
                       dataType: "json",
                       success: function(data){
                           alert(data.callback);
                       }
                   });
    	   }
В результате выполнения запроса я получаю данные в json формате. И для отображения результатов выполнения запроса я бы хотел вызывать метод в этом же классе.
Что-то типа
PHP:
this.data.callback(data);
. Но так, к сожалению, не работает. Я пробовал и с eval тоже, но не выходит. Похоже внутри ajax'a не видны методы классы. Можете что-то посоветовать?

-~{}~ 02.09.08 12:00:

нашел решение. Надо обращаться не по this, а по имени класса, в моем случае toolbarAction.
 

est-in

Новичок
Все дело в замыканиях...

В твоем случае у тебя не "класс", а "объект" ~ экземпляр класса...
И ты вызываешь метод объекта в другом методе объекта :), что вполне корректно.

Но что ты будешь делать если изменить имя твоего объекта?

Вот другое решение.
PHP:
function myClass() {
    
    var self = this;
    
    this.method = function() {
        alert('this is callback');
    }
    
    this.ajax = function () {
        self.method()
    }
}


var a = new myClass();
a.ajax();
 
Сверху