2013-02-22 53 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