Переменная область с JQuery - PullRequest
       1

Переменная область с JQuery

0 голосов
/ 04 декабря 2009

У меня есть объект Javascript, который имеет ajax-вызов jquery для заполнения одного из своих атрибутов:

function Busqueda(contenedor){
    var datosPost = "someData";

    var resultados = undefined;
    var that = this;

    this.buscar = function(){
         jQuery.ajax({
            type: "POST",
            dataType: "json",
            url: "phpFile.php",
            data: datosPost,
            success: function (data){
                if(data.error != 0){
                    alert(data.errorTxt);
                } else {
                    that.resultados = data.resultados;
                }
            }
        });
    }
}

Вызов ajax должен заполнять атрибут "resultados". Однако после запуска метода «buscar», resultados остается неопределенным.

Кроме того, я отладил «that.resultados» внутри метода успеха, и это атрибут Бускеды.

Что происходит?

Ответы [ 2 ]

1 голос
/ 04 декабря 2009

Почему вы используете этот .resultados? ты имеешь ввиду "это"? Это должно быть просто "resultados"

function Busqueda(contenedor){
    var datosPost = "someData";

    var resultados = undefined;
    var that = this;

    this.buscar = function(){
         jQuery.ajax({
            type: "POST",
            dataType: "json",
            url: "phpFile.php",
            data: datosPost,
            success: function (data){
                if(data.error != 0){
                    alert(data.errorTxt);
                } else {
                    resultados = data.resultados;
                }
            }
        });
    }
}
0 голосов
/ 04 декабря 2009

Вы никогда не показываете, как вы его используете. Вы правильно создаете экземпляр?

var o = new Busqueda();
// ... after the ajax success
console.log(o.resultados)

Если вы не используете new, тогда thisthat) и будет window, а не o.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...