Javascript вопрос для начинающих - PullRequest
0 голосов
/ 15 ноября 2009

Это должно быть легко, но так как я новичок в программировании, особенно в 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, установленной в initialize, из onSuccess нового Ajax.Request. Как я могу это сделать?

Ответы [ 2 ]

1 голос
/ 15 ноября 2009

Попробуйте это:

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 голосов
/ 15 ноября 2009

Поскольку у вас уже есть экземпляр класса «InjectClientValue», вы можете использовать его для ссылки на объект и вызова методов в нем. onClick: function(event) { new Ajax.Request(this.element.href+"/"+this.sourceElement.value, { method:'get', onSuccess: function(transport) { InjectClientValue.updateElement.update(transport.responseJSON.content); }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...