2012-06-13 70 views
4

我有這樣一個電話:

$("#ContextMenuModal").height($("body").height()); 

然而$("body").height()回報,當我在Firebug查看不確定的。

什麼會導致jQuery返回未定義的身高?

我正在使用jQuery 1.4.1。

編輯:

這是一個iFrame

+0

@gdoron有沒有錯誤 – dmck

+0

沒有看到一個測試情況下,我們只能有什麼可能會導致這種野生的假設。請創建演示或顯示頁面。這是一個[演示顯示它正在工作](http://jsfiddle.net/BBf3g/)。到你了。 – kapa

+0

@bažmegakapa這是一個大型應用程序,我無法發佈,我可以嘗試創建一個repro,但是,我想知道是否有jquery無法確定高度的情況。 – dmck

回答

10

內只需使用

$(document).height() // - $('body').offset().top 

和/或

$(window).height() 

代替$( '主體'),高度()

要擴大一點,

$(window).height(); // returns height of browser viewport 
$(document).height(); // returns height of HTML document 

正如bažmegakapa指出,雖然有幾個像素略有差異。

$(document).height() - $('body').offset().top 
+1

-1用於顯示功能並且不提供解釋/描述。這兩個(嗯,三個)有很大的區別。 – kapa

+1

$(window).height()和$(document).height()也都返回undefined對我來說 – dmck

+1

@Norse幾個像素,是的。該文檔可能比視口高得多。如果你設置了'body {margin-top:2000px; }',我會說文檔會比主體大得多:)。 [關於此問題的前一個問題](http://stackoverflow.com/questions/9431050)。 – kapa

0

使用不需要這個 -

$("body").css("height") 

嗯,我會說jQuery的:身體的真實高度可以減去身體從原稿的高度偏移(就像我上面提到的)來計算 -

this.style.height;//it will not work if you add it as inline js.