2013-02-22 54 views
3

我在div內有一個導航欄(topmenu)。如果菜單的寬度大於外部div的寬度,我必須隱藏菜單元素的其餘部分。不幸的是我不能使用overflow:hidden作爲div。因此我使用.outerWidth()函數來計算div的總寬度和每個元素(li)的寬度,並隱藏溢出元素。所以我的問題是它的工作正常在Firefox(19.0),IE(8)!,但不是在鉻。在鉻中,所有元素都隱藏起來。當我改變在google chrome中使用outerWidth()計算錯誤的寬度[onload]

$(document).ready(function() {});$(window).load(function() {});

但後來,顯示了幾分之一秒的總UL問題解決了,那麼它得到隱藏(IE,FF它仍然正常工作)。有沒有更好的解決方案?或者任何不同的邏輯。

樣品

<div style="width:300px;" > 
<ul id="menu1"> 
    <li class="noChild "><a href="#" >3 Option</a></li> 
    <li class="noChild"><a href="#" >2 Option</a></li> 
    <li class="noChild "><a href="#" >1 Option</a></li> 
</ul> 
</div > 

http://jsfiddle.net/RSA3X/4/

similar case of mine

回答

3

其實解決辦法很簡單。我使它變得複雜。在下圖中我們可以看到加載腳本,圖像和css的過程。上面的CSS 在我來說,我已經添加腳本鏈接喜歡

<script type='text/javascript' src='jquery.js'></script> 
<script type='text/javascript' src='menu.js'></script> 
<link rel="stylesheet" href="style.css" type="text/css" media="screen" /> 

及其負載,如圖像2.這樣的CSS加載之前我的腳本執行。我無法獲得CSS的屬性。

當我改變位置

<link rel="stylesheet" href="style.css" type="text/css" media="screen" /> 
    <script type='text/javascript' src='jquery.js'></script> 
    <script type='text/javascript' src='menu.js'></script> 

我的腳本在完成加載的CSS(圖像1)之後被執行。所以現在它工作完美。

enter image description here