2009-10-11 51 views
0

我想調整容器div的邊距以及列表中的鏈接的邊距,以便最後一行項儘可能接近變化的底部大小的圖像旁邊。該功能的工作原理與我第一次加載頁面時的預期完全相同。但是,如果頁面被重新加載,.height()和.outerHeight()函數會返回與原來不同的值。即使高度在外部樣式表中明確指出,它們也會根據瀏覽器返回不同的值。Jquery .height()頁面重新加載時的結果不一致

$(document).ready(function(){ 

var headingSize = 2*($('div.title').outerHeight(true) + $('div.hint').outerHeight(true)); 
var adjHeight = $('#image img').height() + 70; 
var rowCount = $('div#options ul li').length; 
var rowHeight = $('div#options ul li a').height(); 

var padding = (((adjHeight - headingSize)/rowCount) - rowHeight)/2; 

if(padding < 4){ 
padding = 4; 
} 

var margin = (rowHeight + 2*padding)/2; 

if(margin < 10){ 
margin = 10; 
} 

$('div.options').css({'marginTop': margin}); 
$('div#options ul li a').css({'paddingTop' : padding, 'paddingBottom' : padding}); 

}); 

因爲它可以在第一次加載,我無法想象這可能是錯誤的腳本。爲什麼會這樣做?我錯過了什麼?

謝謝!

-fucla

回答

1

有在我的定義相沖突的某些元素的高度包括CSS文件的差異。似乎jQuery會得到不穩定的結果,因爲它會在兩種樣式之間來回反彈。

刪除包含的文件,一切工作正常和丹迪。