Показать сообщение отдельно
  #1 (permalink)  
Старый 24.06.2012, 12:22
Интересующийся
Отправить личное сообщение для ByKraB Посмотреть профиль Найти все сообщения от ByKraB
 
Регистрация: 24.01.2012
Сообщений: 19

Неправильный расчет ширины элементов в списке. Работает через раз. jQuery
Привет всем форумчанам.
Проблема вот в чем.
Есть интернет магазин. С помощью списка, в горизонтальную линию выводится список категории магазина. Есть скрипт, который выставляет отступы для категорий, чтобы они растягивались на всю ширину.

Проблема в том, что работает он как-то через раз. Как правило, при первом открытии страницы расчет ширины идет слегка неправильный.При обновлении страницы все вроде норм.

Если не трудно, прошу указать, про что именно стоит читать, чтобы понять в чем ошибка.

Ссылка на сайт
$(document).ready(function(){
  var mainwidth = $('#nav').width();//ширина всего списка
  var elem_width =0;
  var count=0;
  $('#nav li.item1_norm').each(function(i){
    elem_width = elem_width+$(this).outerWidth(); //суммируем ширину всех элементов списка. именно тут идет неправильный расчет. 
    count=i+1;
  });
    alert(count);
  elem_width=parseInt(elem_width);
    alert(elem_width);
  var space = mainwidth-elem_width;//рассчитываем свободное место
  var one_margin = parseInt(space/(count)); //рассчитываем отступ для 1 элемента

  $('#nav li.item1_norm').each(function(e){
    $(this).css("margin-right", one_margin);
    if($(this).hasClass('last')){ //убираем отступ для последнего элемента списка
     $(this).css("margin-right", "0");
     }
    });
  });

Последний раз редактировалось ByKraB, 24.06.2012 в 13:44.
Ответить с цитированием