所以我在BackBone中的render()方法中引入了一個模板。什麼時候在Backbone中實際呈現並且可用的東西
var html = $(template).render();
this.el.html(html);
我有一些爲該模板定義的css,例如元素的寬度百分比。在上面的代碼後面,我似乎無法使用jquery獲得高度。那麼,它實際上是否將其呈現給DOM,元素何時計算?
THX 拉爾夫
所以我在BackBone中的render()方法中引入了一個模板。什麼時候在Backbone中實際呈現並且可用的東西
var html = $(template).render();
this.el.html(html);
我有一些爲該模板定義的css,例如元素的寬度百分比。在上面的代碼後面,我似乎無法使用jquery獲得高度。那麼,它實際上是否將其呈現給DOM,元素何時計算?
THX 拉爾夫
首先,你需要使用緩存元素this.$el.html(html)
jquery的。 之後,視圖已經呈現,但未附加到DOM,因此,像高度或寬度這樣的屬性將不確定(或爲零)。
例如,這應該返回的東西:
var html = $(template).render();
this.$el.html(html);
this.$el.appendTo("body");
console.log(this.$el.height());
嗯,我弄清楚了一些事情。我將我的CSS更改爲具有50px的高度,作爲我在$ el.html(html)後面測試的某個元素。它恢復正確,但是50%沒有。那麼何時以及如何計算百分比。 – user147372
根據父元素計算寬度和高度等百分比屬性,因此,如果視圖未附加到DOM,則它根本沒有父級。 – rdiazv
我認爲你需要'這個$ el.html(HTML)'(用'$')。但是,是的,這只是JQuery的''''方法,所以它應該立即渲染。 – McGarnagle