过去两个小时我一直试图将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变量对象。 有什么建议吗?
答案 0 :(得分:2)
您可以创建一个闭包,如下所示:
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;
}
});