2009-11-15 75 views
0

这应该很简单,但由于我是新手编程,特别是在JavaScript中,我无法弄清楚。初学javascript问题

比方说,我有以下的javascript代码:

var InjectClientValue = Class.create(); 


InjectClientValue.prototype = { 
    initialize: function(sourceElement, eventElement, updateElement) { 
     this.sourceElement = $(sourceElement); 
     this.element = $(eventElement); 
     this.updateElement =$(updateElement) 
     this.element.observe('click',this.onClick.bindAsEventListener(this)); 
    }, 
    onClick: function(event) { 
     new Ajax.Request(this.element.href+"/"+this.sourceElement.value, { 
      method:'get', 

      onSuccess: function(transport) { 

       //How do I access the instance variable updateElement in InjectClientValue_ 
      //updateElement.update(transport.responseJSON.content); 
      } 
     }); 
     event.stop(); 

    } 
    } 

我需要的是访问变量updateElement从新的Ajax.Request的的onSuccess在初始化设置好的。我该怎么做?

回答

1

试试这个:

onClick: function(event) { 
    var thisVariable = this; 

    new Ajax.Request(this.element.href+"/"+this.sourceElement.value, { 
     method:'get', 

     onSuccess: function(transport) { 
      thisVariable.updateElement.update(transport.responseJSON.content); 
     } 
0

既然你已经有了类的实例“InjectClientValue,”你可以用它来引用它的对象,并调用方法。

 
onClick: function(event) { 
    new Ajax.Request(this.element.href+"/"+this.sourceElement.value, { 
     method:'get', 
     onSuccess: function(transport) { 
      InjectClientValue.updateElement.update(transport.responseJSON.content); 
     }