初学者javascript问题

时间:2009-11-15 00:08:32

标签: javascript ajax prototypejs

这应该很简单,但由于我是编程的新手,特别是在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();

    }
    }

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

2 个答案:

答案 0 :(得分: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);
        }

答案 1 :(得分: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);
        }