2013-11-10 75 views
0

這是我的代碼的一部分。它在一個循環內。追加後動態div元素高度返回0

{//just to show its inside loop 
ph = "<a id=\"" + id + "\" class=\"polaroid\" href=\"" + 
src + ".jpg\"><img src=\"" + src + "_q.jpg\"><p>" + item.title + "</p></a>"; 
$("#images").append(ph); 
} 

一旦運行它將ph附加到圖像div,但是當我調用$(「#images」)。height();它返回0.我已經把所有的元素都添加到div的外部,並且它仍然返回0.任何想法將不勝感激。另外,「#images」不會動態創建,只是動態填充。

這裏是我的html:

<body><div id="images"></div> 
+2

一個可能的原因是如果知道圖像高度可以將高度屬性添加到圖像標記或在css中執行,則可以在圖像區域加載之前調用「高度」 –

+0

。 ...在圖像加載前應該允許計算 – charlietfl

+0

我也考慮過這個問題,所以我在循環(外部)之後調用height,但仍然返回0.當我檢查dom時,它顯示所有元素都添加到#images,但仍返回0. – user2975403

回答

1

唉,我想通了,我加了邊框的所有元素(不同顏色),我注意到,即使在DOM它表現爲一個標籤是內部#images格,他們的外#images邊框,所以我去了css並添加了overflow-y:auto,並且它們顯示在邊框內,現在我從$(「#images).height()獲得一個值,謝謝你們的幫助,它允許我會專注於可能的原因和最終的解決方案

0

會是這樣的工作?

$(document).ready(function() { 
    for(var i=0;i<3;i++) 
    { 
     ph = "<img src=\"http://placekitten.com/g/30/30\" alt=\"\" />"; 
     $("#images").append(ph); 
    } 

    $("img").one('load', function() { 
     $("#height").html($("#images").height()); 
    }); 
}); 
+0

它仍然返回0;但我注意到一些奇怪的東西,當我做$(「#images a」)。它返回我 – user2975403

+0

它仍然返回0;但我注意到一些奇怪的東西,當我做'$(「#images a」)。height();'它返回212,這是一個ph值的高度。 – user2975403