【问题标题】:Using Ajax.Request response inside of an object ? - PrototypeJS在对象内部使用 Ajax.Request 响应? - 原型JS
【发布时间】:2009-10-09 08:40:45
【问题描述】:

在过去的两个小时里,我一直在尝试将 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 变量。 有什么建议吗?

【问题讨论】:

    标签: javascript class object prototypejs ajax.request


    【解决方案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;
      }
     });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多