2
我試圖讓我的DOM中的某些「大牌」的高度更高,以將它們全部放在同一高度。無法在Template.onRendered()上獲得div的高度流星
{{#each skills}}
<div class="big-card">
<div class="card-grid add-option-part">
<div class="card-text">
<p>{{this}}</p>
</div>
</div>
<div class="option-part">
<div class="half-option-part white-line-part"><img class="seemore-button" src="/img/expand.png"/></div>
<div class="half-option-part">{{> StarsRating}}</div>
</div>
</div>
{{/each}}
功能採取得到他們的高度是:
function boxContentNormal(){
var elementHeights = [];
$('.big-card').map(function() {
var currentItem = $(this).find('.card-text');
var currentItemHeight = currentItem.height();
var currentItemPaddingTop = parseInt(currentItem.css('padding-top').replace("px", ""));
var currentItemPaddingBottom = parseInt(currentItem.css('padding-bottom').replace("px", ""));
elementHeights.push(currentItemHeight + currentItemPaddingBottom + currentItemPaddingTop);
});
var maxHeight = 0;
$.each(elementHeights, function(i, element){
maxHeight = (element > maxHeight) ? element : maxHeight;
});
console.log("Max height : "+maxHeight);
}
它是由那個叫:
Template.MyTemplate.onRendered(function(){
boxContentNormal();
$(window).resize(function(){
boxContentNormal();
});
});
當一個新的路線被稱爲該功能的使用和模板將是同時顯示。 它的工作原理類似:
- 我點擊進入一個新的路由
- 一旦抵達路線的鏈接,該模板將顯示
- 當模板被渲染,被調用的函數首次
- 之後,如果調整窗口大小的功能將被再次叫
的問題是在第三步中,當函數被調用它沒有得到的高度卡。然後所有的高度都等於0.當我調整窗口大小時,它工作正常。
所以我認爲這個功能被稱爲過早,「卡」還不存在。你知道我可以如何「等待」他們或另一種解決方案嗎?
謝謝:)