2013-02-22 58 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