2010-06-08 77 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