IE7 - jquery addClass () ломает плавающие элементы - PullRequest
1 голос
/ 08 июня 2010

У меня есть этот nav, который использует addClass ('hover'), когда мышь наведена на элемент. Это прекрасно работает, за исключением IE7, когда функция addClass вызывается, каждый элемент с float:left перестает перемещаться и страница полностью теряет свою структуру.

Это мой 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?

Спасибо, ребята

1 Ответ

1 голос
/ 08 июня 2010

Рекс М, вероятно, что-то здесь.если ваш класс наведения добавляет какие-либо отступы, поля, отступы или изменяет ширину элемента, то он будет слишком большим.Иногда это может происходить в IE из-за ошибки box model .В 960gs, если элементы становятся слишком длинными, они переходят на следующую строку.

Если это не поможет, дайте нам ссылку на пример?

...