关于使用Mootools和'This'关键字的困惑

时间:2011-04-25 12:41:32

标签: javascript javascript-events mootools this

我正在尝试为我在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 个答案:

答案 0 :(得分:2)

在“initialize”函数的顶部,添加一个变量声明:

var thisObj = this;

现在,在你的处理程序中,你应该能够:

alert(thisObj.firstName);

通过在“initialize”函数开始时隐藏this,您可以为“click”处理程序提供一种获取原始对象的方法。在处理程序中,this将引用与事件有关的DOM元素。 (我实际上在猜测,因为我对MooTools并不熟悉。)