使用javascript / jquery将resize事件绑定到自定义对象

时间:2013-01-26 20:14:01

标签: javascript jquery object javascript-events

我正在尝试用JS编写一个对象。每当浏览器窗口调整大小时,此对象都需要重新计算某些值。我试图通过将函数绑定到事件(“resize”)来做到这一点。我正在使用JQuery框架。

我已经尝试过几种方法,但没有一种方法可行,所以一个例子不会有多大用处。这个想法是这样的:

function grid_constructor(options) {
  this.numOfdivisions = $(target).width() / division_size;

  $(this).on ("resize", function () {
       this.numOfdivisions = $(target).width() / division_size;
  })
}

到目前为止,我认为问题在于我应该将事件绑定到文档而不是绑定到对象,但是当我尝试将事件绑定到像$(window).resize (this.recalculate_divisions())这样的文档时,它会立即触发,永远不再开火(所以我想我做错了。)

由于此函数是对象固有的,我不能通过名称引用实例化对象(我不知道,在编写代码时,它将具有哪个名称),所以我不能简单地做一个{ {1}}。

只是为了澄清。我不想创建自定义事件,我需要我的对象在构建后的任何时间对事件作出反应。

1 个答案:

答案 0 :(得分:0)

我不确定$(target)指的是什么,但你是对的,'resize'事件需要绑定到窗口:

function grid_constructor(options) {
    var self = this,
        win = $(window);

    self.numOfdivisions = win.width() / division_size;

    win.on("resize", function () {
        self.numOfdivisions = win.width() / division_size;
    });
}