我正在尝试用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}}。
只是为了澄清。我不想创建自定义事件,我需要我的对象在构建后的任何时间对事件作出反应。
答案 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;
});
}