Как использовать функции обратного вызова JQuery с объектами Javascript - PullRequest
0 голосов
/ 06 июля 2011

У меня есть следующий объект Javascript:

function extraFields(id) {
    this.numActiveFields = 0;

    ...

    this.addRow = function(quoteClass, rowClass) {
        var remButton = $("<span></span>")
        .addClass(rowClass)
        .addClass(quoteClass)
        .click(function() {
            //here I want to refer to the object's variable, but instead refer
            //to the JQuery object
            this.numActiveFields++;
        });
    }

    ...
}

Я хочу изменить переменную объекта изнутри функции обратного вызова.Как бы я это сделал?Должен ли я изменить способ объявления объекта?

1 Ответ

1 голос
/ 06 июля 2011

Когда вы находитесь в функции обратного вызова, «this» - это «remButton», который вы создали.Просто сохраните «this» в переменной перед обратным вызовом, а затем используйте его вместо этого.

Для лучшего объяснения, пожалуйста, посмотрите на ссылку, которую предложил mplungjan: Ссылка на объект из функции обратного вызова в jQuery

...