2012-05-11 62 views
3

我有一個div:
如何獲取HTML元素的原始高度?

<div id="div" style="height:150px; border:solid thin blue;"></div> 

是有辦法找回原來DIV高度? div可調整大小,所以用戶可能在我的代碼加載之前調整了大小。
注:我的代碼是一個jQuery插件,所以我不知道發生了什麼事之前,我的插件被稱爲元素線索(所以請不要告訴我存儲在元數據的高度......)

jqFiddle在這個演示中,我想在調整div大小後獲得。
任何幫助將不勝感激!

回答

2

不,因爲resizable()方法覆蓋內聯樣式height值。

您需要將它存儲在別的地方。

例如拍前div調整大小:

var originalHeight = $('#div').height(); 
$('#div').resizable(); 

$('#cmd').button().click(function(){ 
    alert(originalHeight); 
}); 
+0

我不能,是不是我初始化元素,我的插件可能會在其他插件執行後調用.. – skafandri

+1

所以,正如我所說,你不能。元素變化的歷史不存在。 – antyrat

+1

不幸的是,這個答案在技術上是有幫助的!至少我必須找到另一種方法來解決我的問題。我有3個答案,教給我如何設置大小,如何在數據中存儲大小! WTF !!!!!無論如何感謝 – skafandri

0
originalHeight=0; 
$(document).ready(function() 
{ 
    originalHeight= $("#div").height() 
}); 
+0

雖然代碼說話對於其本身,代碼背後的意圖可能會使用一些描述。你爲什麼要使用這種技術?這對於手頭的問題有什麼特別的幫助?我認爲這個答案對它有最大的好處,如果你提供一個包含這些信息的編輯,它會很樂意提升它。 –

+0

我不明白加載代碼前調整dvi的大小問題。這段代碼將在文檔加載後得到原始高度(或者我可以在div加載事件上綁定這個邏輯)。如果我不明白問題,我很抱歉 – unarity

+0

哦,我認爲你已經理解了這個問題。您在此處展示的代碼與接受的答案相符。我認爲你已經省略了,這會讓這個更好的答案是描述爲什麼這應該起作用。 –

0

我不知道的一種方式來獲得從DOM舊的數據,但是你能不能堅持其稱爲初始化函數插件然後獲得值?你也可以在你的文檔中建議,在你完成初始化函數之前,元素不會被移動,儘管如果它是通過.ready()調用的,這應該在用戶有機會閃爍之前發生。

div如何調整大小,使用jquery-ui?

另一種選擇可能是再次使用ajax獲取頁面,然後解析頁面,但這將是很多的努力和非常混亂。

+0

我試圖以另一種方式處理我的問題,請檢查http://stackoverflow.com/questions/10552382/find-out-if-html-height-is-set-by-style-or-by-contnet – skafandri