Использование ответа Ajax.Request внутри объекта? - Прототип JS
Последние два часа я пытался передать responseText объекту, в который я вызываю Ajax.Request. И этого просто не происходит:) Вот код;
var traziSuggest = Class.create({
initialize:function( elemenat, sugDiv )
{
this.elemenat = $( elemenat );
this.elemenat.onkeyup = this.uzmiSug.bindAsEventListener(this);
this.elemenat.onkeydown = this.uzmiSug.bindAsEventListener(this);
this.rezultat = new Array();
this.sugDiv = $( sugDiv );
this.prethodnaDuzina = this.elemenat.value.length;
},
uzmiSug:function()
{
this.novaDuzina = this.elemenat.value.length;
if ( this.novaDuzina > 3 && this.novaDuzina != this.prethodnaDuzina )
{
new Ajax.Request( '/ajax/traziSuggest.php?sta=mjesto&q=' + this.elemenat.value ,
{
method: 'get',
onSuccess: function(transport)
{
traziSuggest.rezultat = transport.responseText;
}
});
this.prikaziSug;
}
else
{
this.sugDiv.hide();
}
this.prethodnaDuzina = this.novaDuzina;
},
prikaziSug: function()
{
var zemlje = this.rezultat.zemlje;
var mjesta = this.rezultat.mjesta;
var lokacije = this.rezultat.lokacije;
}
});
Итак, мне нужно передать transport.responseText в переменную this.rezultat объектов. Какие-либо предложения?
1 ответ
Решение
Вы можете создать замыкание, например так:
if ( this.novaDuzina > 3 && this.novaDuzina != this.prethodnaDuzina )
{
var self = this;
new Ajax.Request( '/ajax/traziSuggest.php?sta=mjesto&q=' + this.elemenat.value ,
{
method: 'get',
onSuccess: function(transport)
{
self.rezultat = transport.responseText;
}
});