2010-06-08 70 views
1

我有這個導航使用addClass('懸停')時,鼠標滾過一個項目。這工作正常,除了在IE7中調用addClass函數時,每個具有float:left的元素停止浮動並且頁面完全丟失其結構。IE7 - jQuery的addClass()打破浮動元素

這是我的JS:

_this.position_sub_menus = function(){ 
    $('#header #nav > ul > li').mouseenter(
    function(e){ 
    pos = $(this).offset(); 
    height = $(this).height(); 
    lvl2 = '#' + $(this).attr('id') + '-submenu'; 
     if($(this).position().left > ($('#nav').width()/2)){ 
     pos.left = pos.left - $(lvl2).width() + $(this).width(); 
     } 
    $(this).addClass('hover'); 
    $(lvl2).show(); 
    $(lvl2).css({ 'left' : (pos.left - 12) + 'px', 'top' : pos.top + height + 'px'}); 
    } 
    ); 

這是的是打破元素的CSS:

display: inline; 
float: left; 
margin-left: 10px; 
margin-right: 10px; 
position: relative; 

它的CSS從960網格系統。

當我註釋掉$(this).addClass('hover');行時,浮動元素不會中斷。

是否有人熟悉這個IE7問題?

謝謝你們傢伙

+0

什麼是懸停類? – 2010-06-08 02:56:39

回答

1

雷克斯M可能是在這裏的東西。如果您的懸停類添加了任何填充,邊距,填充或更改元素的寬度,則會使其變大。有時,這些可能發生在IE中,因爲box model bug。在960克,如果元素變得太長,那麼他們會去下一行。

如果這沒有幫助,你能給我們一個例子的鏈接?

+1

是的,寬度+填充+餘量不適合合適。 我只是稍微改變了一些正在破解的內容的寬度。 謝謝! – Patrick 2010-06-25 02:24:53