2010-06-08 4 views
1

마우스를 항목 위로 가져 가면 addClass ('hover')를 사용하는이 nav가 있습니다. addClass 함수가 호출되어 float:left 인 모든 요소가 호출되고 페이지가 완전히 손실되면 IE7에서는 예외가 발생합니다.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; 

그것은 960 그리드 시스템에서 CSS를합니다.

$(this).addClass('hover'); 행을 주석 처리하면 플로팅 된 요소가 중단되지 않습니다.

이 IE7 문제에 익숙한 사람이 있습니까?

감사합니다.

+0

호버 클래스 란 무엇입니까? –

답변

1

Rex M은 아마도 여기에 있습니다. hover 클래스가 여백, 여백, 안쪽 여백을 추가하거나 요소의 너비를 변경하면 너무 크게 만듭니다. 때로는 IE에서 box model bug 때문에 이러한 문제가 발생할 수 있습니다. 960gs에서 요소가 너무 길면 다음 줄로 이동합니다.

이 방법이 도움이되지 않는다면 예제에 대한 링크를 제공해 주시겠습니까?

+1

예, 너비 + 패딩 + 여백이 적절하게 합산되지 않았습니다. 방금 ​​끊어진 내용의 너비 중 일부를 약간 변경해야했습니다. 감사합니다. – Patrick

관련 문제