1

JavaScript オブジェクトにリスナーを設定する方法がよくわかりません。例えば:

var obj = function(){

    this.test = function(){
        console.log('test');
    }

    $(document).on('click','#test',(function(){
        this.test();
    }).bind(this));
}

しかし、jQueryは私にこのエラーを与えます

Uncaught TypeError: Object #test has no method 'apply' 

適切な方法があると思いますが、見つかりません。

ご協力いただきありがとうございます。

編集:私の例では機能するが、コードでは機能しない理由がよくわかりません

http://jsfiddle.net/nhJNH/

4

1 に答える 1

2

試す

var obj = function(){

    this.test = function(){
        console.log('test');
    }
    var t = this;

    $(document).on('click','#test', function(){
        t.test();
    });

}

使用することもできます

$(document).on('click','#test', $.proxy(this.test, this));

また

$(document).on('click','#test', $.proxy(function () {
    this.test();
}, this));
于 2013-07-28T10:12:00.263 に答える