2012-12-06 65 views
1

所以我在BackBone中的render()方法中引入了一個模板。什麼時候在Backbone中實際呈現並且可用的東西

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

我有一些爲該模板定義的css,例如元素的寬度百分比。在上面的代碼後面,我似乎無法使用jquery獲得高度。那麼,它實際上是否將其呈現給DOM,元素何時計算?

THX 拉爾夫

+0

我認爲你需要'這個$ el.html(HTML)'(用'$')。但是,是的,這只是JQuery的''''方法,所以它應該立即渲染。 – McGarnagle

回答

3

首先,你需要使用緩存元素this.$el.html(html) jquery的。 之後,視圖已經呈現,但未附加到DOM,因此,像高度或寬度這樣的屬性將不確定(或爲零)。

例如,這應該返回的東西:

var html = $(template).render(); 
this.$el.html(html); 
this.$el.appendTo("body"); 
console.log(this.$el.height()); 
+0

嗯,我弄清楚了一些事情。我將我的CSS更改爲具有50px的高度,作爲我在$ el.html(html)後面測試的某個元素。它恢復正確,但是50%沒有。那麼何時以及如何計算百分比。 – user147372

+4

根據父元素計算寬度和高度等百分比屬性,因此,如果視圖未附加到DOM,則它根本沒有父級。 – rdiazv

相關問題