Путаница при использовании Mootools и ключевого слова "This" - PullRequest
1 голос
/ 25 апреля 2011

Я пытаюсь назначить обработчик событий для класса, который я создал в Mootools, но я не могу получить доступ ни к одной из переменных, которые я создал для класса. Вот так:

var newPerson = new Class({
initialize: function(name)
{
    this.firstName = name;
    //-------Creating Div----------//
              ...........
    //--------Created Div----------//
    $(this.newDiv.id).click(function()
    {
        alert("clicked");
    };
 };

Теперь, когда я изменяю функцию, чтобы предупредить объекты, которым присвоено имя alert(this.firstName);, он не получает к ним доступ, и я не могу понять, почему.

Может ли кто-нибудь направить меня в правильном направлении.

Спасибо.

1 Ответ

2 голосов
/ 25 апреля 2011

В верхней части функции "initialize" добавьте объявление переменной:

var thisObj = this;

Теперь в вашем обработчике вы должны иметь возможность:

alert(thisObj.firstName);

Сохраняя this в том виде, в котором он стоял, когда началась функция «initialize», вы предоставляете способ обработчику «click» добраться до исходного объекта. В обработчике this будет ссылаться на элемент DOM, связанный с событием. (Я на самом деле догадываюсь об этом, потому что я не очень знаком с MooTools.)

...