2009-10-09 30 views
1

過去兩個小時裏,我一直在嘗試將responseText傳遞給我打電話給Ajax.Request的對象。而這只是沒有發生:)這是代碼;在對象內部使用Ajax.Request響應? - PrototypeJS

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變量。 有什麼建議嗎?

回答

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; 
    } 
});