1

所以我在 BackBone 的 render() 方法中引入了一个模板。

var html = $(template).render();
this.el.html(html);

我为该模板定义了一些 CSS,例如元素的百分比宽度。在上面的行之后,我似乎无法使用 jquery 获得那个高度。那么这是否真的将它呈现给 DOM,什么时候计算元素?

谢谢拉尔夫

4

1 回答 1

3

首先,您需要使用 jquery 缓存元素this.$el.html(html)。在此之后,它已经渲染了视图,但没有附加到 DOM,因此,高度或宽度等属性将是未定义的(或零)。

例如,这应该返回一些东西:

var html = $(template).render();
this.$el.html(html);
this.$el.appendTo("body");
console.log(this.$el.height());
于 2012-12-06T20:06:00.297 回答