丢失了对象

时间:2016-07-25 20:39:10

标签: javascript jquery

我有一个问题,当它在一个事件$(window).resize

中运行时,我失去了对象ana属性的引用

我可以做的就是保持范围。

示例:

var testObject = {

        init: function () {
            this.divOriginal = $('.selector-tag');            
            this.resizeNow();
        },

        resizeNow: function () {
            //some another code here....
            //....
            //..
            $(window).resize(this.resizeUpdate.bind(this)); //without bind(this) the scope is window            
        },

        resizeUpdate: function() {
            console.log($(this));
            var scrollWrapper = $(this)[0].divOriginal;//the only way to refer to the divOriginal 
            scrollWrapper.css('border','1px solid red');
        }
}

testObject.init();

有一种更简洁的方法来访问对象的属性吗?

1 个答案:

答案 0 :(得分:1)

您可以使用this而不是$(this)来访问该对象,因为您将对象绑定到事件处理程序调用的方法。

请参阅Function.prototype.bind上的MDN docs

  

bind()方法创建一个新函数,当被调用时,它具有它   关键字设置为提供的值,具有给定的序列   调用新函数时提供的任何参数。