Задача:
Есть выпадающее меню на сайте. В выпадающем окне есть колонки разной ширины. Необходимо подсчитать ширину всех колонок и задать эту ширину родительскому контейнеру.
Родился такой код
function calculateColsWidth(){
$('.main-menu .main-menu__item--parent').each(function(){
var subcolsContainer = $(this).find('.b-subcols');
var contWidth = 0;
$('.subcol-col',subcolsContainer).each(function(){
contWidth+= $(this).outerWidth(true);
console.log('contWidth= '+contWidth);
});
if(contWidth > 980)
contWidth = 980;
subcolsContainer.width(contWidth);
});
}
Вызов функции после загрузки страницы
window.onload = function(){
calculateColsWidth();
}
Однако ширина колонок считается неправильно. После первого вызова функции ширина каждой колонки на 10px меньше. При повторном вызове функции через консоль все высчитывает верно.
Не могу понять, почему так происходит.
Браузер - Хром.
Буду рад любой помощи.
Ссылка с кодом
jsfiddle.net/ckL6p/1