0

可変スコープに問題があります。イベントリスナー(onclick)を設定していますが、ハンドラーはオブジェクトのメソッドであり、ハンドラーメソッド内でオブジェクトを参照する必要があります。

例:

var FOO = function () {
 this.clicked = false
};

FOO.prototype.handler = function(e)
{
 this.clicked = true;
}

FOO.prototype.setListeners = function()
{
 $("#but").click(this.handler);
}

var oop = new FOO();
oop.setListeners();

例は、を参照していないthis.clicked = true;ために機能します。thisoop

オブジェクトの参照をハンドラー関数に渡すにはどうすればよいですか?

4

1 に答える 1

1
FOO.prototype.setListeners = function()
{
    var that = this;
    $("#but").click(function(){that.handler();});
}
于 2012-06-13T19:49:12.020 に答える