0

事件对象中的“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 回答