0

我正在尝试在 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()),它会立即触发,不再触发(所以我想我'我做错了)。

由于这个函数是对象固有的,我不能通过名称来引用实例化的对象(我不知道,在编写代码时,它将具有哪个名称),所以我不能简单地做一个$(document).ready(function(){$(window).resize($(object_name).function)).

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

4

1 回答 1

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;
    });
}
于 2013-01-26T20:25:57.640 回答