2013-02-22 38 views
0

我在我的響應式網站上使用twitter bootstrap。我有一個形象的旋轉木馬,每個都有一些文字。我正在檢測p是否比傳送帶高,並在必要時增加寬度。更新隱藏div的寬度

if ($(item).find('.carousel-caption')[0].scrollHeight > $(item).height() && count <= 100) { 
    $(item).find('.carousel-caption').css('width', $(item).find('.carousel-caption').width() + 10); 
    count++; 
    setWidth(item); 
} 

這是爲傳送帶中的每個項目運行。這對可見(有效)項目非常有用,但對隱藏項目不起作用。我已經看過控制檯,它是有display: none的項目。

有沒有辦法讓這項工作? $(item).find('.carousel-caption')[0].scrollHeight對隱藏項目重新調整0。

+1

嘗試使用'visibility:hidden'而不是'display:none' – Blazemonger 2013-02-22 16:29:49

+0

您是否嘗試過使用':hidden' jQuery選擇器? http://api.jquery.com/hidden-selector/ – defaultNINJA 2013-02-22 16:30:33

+0

謝謝@Blazemonger - 如果我將項目設置爲'$(item).css('display','inline-block'),它會有效。css('visibility ','hidden');'在if之前,並在之後重置它:'$(item).css('display','').css('visibility','visible');'' – Deco 2013-02-22 16:52:35

回答

1

元素從顯示DOM完全移除,所以你不能對他們進行多次測量。請嘗試將它們從display:none更改爲visibility:hidden,以便它們仍佔用空間。

0

嘗試

display:none
$(item).find('.carousel-caption:hidden')[0].scrollHeight