【问题标题】:Is there something like an "originalScope" property in the jquery event-object?jquery 事件对象中是否有类似“originalScope”属性的东西?
【发布时间】:2012-11-30 11:50:03
【问题描述】:

事件对象中的“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);
    }
}

【问题讨论】:

    标签: jquery events scope event-listener


    【解决方案1】:

    如果您希望this 指向您的事件处理程序中的对象,请在设置它们时使用$.proxy

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

    ...与Function.prototype.bind 的工作基本相同:对于给定的函数和对象,创建另一个函数,其this 值绑定到特定对象。

    【讨论】:

    • 以后可以删除eventLitener吗? $(document).off('keydown',this.keydownListener);
    • 如果this 指的是定义它的那个对象,当然。
    猜你喜欢
    • 2018-04-13
    • 2011-09-10
    • 2011-02-27
    • 1970-01-01
    • 2014-02-15
    • 2013-02-02
    • 2021-09-29
    • 2016-10-17
    • 1970-01-01
    相关资源
    最近更新 更多