вызов метода из обработчика событий - PullRequest
2 голосов
/ 17 июня 2010

У меня есть этот код, над которым я работаю, но каждый раз, когда я вызываю метод init, я получаю сообщение об ошибке

this.addElement не является функцией

потому что я не могу вызывать методы из обработчиков событий?

function editor () {

    this.init = function () {
        $("#area").bind('click' , this.click_event );

    }

    this.addElement = function () {
        console.log("adding element");
    }

    this.click_event = function(event) {
        this.addElement();
        console.log("click event in x : "+event.data);
    }
}

1 Ответ

7 голосов
/ 17 июня 2010
function editor () {
    var that = this;

    this.init = function () {
        $("#area").bind('click' , this.click_event );

    }

    this.addElement = function () {
        console.log("adding element");
    }

    this.click_event = function(event) {
        that.addElement();
        console.log("click event in x : "+event.data);
    }
}

Вы должны прочитать эту книгу, JavaScript: хорошие детали и посетить веб-сайт Crockenator здесь, crockford.com

Вы также можете прочитатьо проблеме JavaScript "this" здесь, http://www.quirksmode.org/js/this.html

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