2011-01-31 63 views
1

我有2個容器,一個在另一個裏面,我試圖用document.ready上的元素填充內部容器,所以它的寬度幾乎等於外部的div寬度。如何將元素添加到一個div,直到它的寬度幾乎等於另一個div?

它與window.resize上的「if」語句完美協作,但是因爲我需要填充document.ready上的div,所以我試圖使用「while」,但它不起作用。爲什麼?

下面是HTML:

<style> 
    #outer {float: left; width: 500px; background: grey} 
    #inner {float: left; width: auto;} 
    li {float: left; margin: 0 10px} 
</style> 


<div id="outer"> 
    <ul id="inner"> 
     <li></li> 
     <li></li> 
     <li></li> 
    </ul> 
</div> 

...和JS:

function width_check() { 
    var ddd = $("#outer").width() - $("#inner").width(); 
    var sss = 0; 

    if (ddd > 100) { 
     sss = 1; 
    } else { sss = 0 };}​ 


$(document).ready function() { 
    width_check(); 

    while (sss = 1) { 
     $("#inner").append('<li></li>'); 
     width_check(); 
        }  } 

回答

3

我覺得你在這裏有一個範圍的問題。

你有一個功能,定義var sss = 0。但是$(document).ready的檢查有它自己的sss。 sss在這個函數中是未定義的。嘗試是這樣的:

function width_check() 
{ 
    var ddd = $("#outer").width() - $("#inner").width(); 
    return ddd > 100; 
}​ 


$(document).ready(function() // check the extra brackets around the function. 
{ 
    while(width_check()) // check the width every time 
    { 
     $("#inner").append('<li></li>'); 
    }  
}); 
+0

`回報(DDD> 100);'是在'width_check`更好。不需要用整數模擬布爾值。 – RoToRa 2011-01-31 13:45:43

+0

@RoToRa真的,我剛剛複製了他的代碼。還有更多的東西。就像我們現在有一個全球性的功能,可能根本不需要。 – Marnix 2011-01-31 13:48:08

0

不喜歡馬尼克斯說,並添加display: block;li小號

相關問題