0

イベントObjectの「originalScrop」プロパティのようなものは非常に便利です。または他の解決策はありますか?

{
    show: function(){
        $(document).on('keydown',this.keydownListener);
    },
    keydownListener: function(e){
        if(e.which===27){ o.originalScope.hide(); } // <----- originalScope
    },
    hide: function(){
        $(document).off('keydown',this.keydownListener);
    }
}
4

1 に答える 1

1

thisイベントハンドラーでオブジェクトをポイントする場合は、それらを設定するときに$.proxyを使用します

$(document).on('keydown', $.proxy(this.keydownListener, this));

...これは基本的にFunction.prototype.bindと同じ働きをします:与えられた関数とオブジェクトに対して、そのthis値が特定のオブジェクトにバインドされた別の関数を作成します。

于 2012-12-12T17:49:25.567 に答える