Задать вопрос
@vladzvezdin

Изменение ширины блока в зависимости от количества элементов?

Всем привет. прошу помощи, не могу до конца понять как реализовать изменение ширины выпадающего меню в зависимости от количества элементов. Так как выпадающее меню с position: absolute, то css решения не подходят. Нужно именно решение на JS

...
<li>
<ul class="dropdown-menu last-dropdown-level">
<div class="row">
<div class="menu-item"></div>
<div class="menu-item"></div>
<div class="menu-item"></div>
</div>
<div class="row">
<div class="menu-item"></div>
<div class="menu-item"></div>
</div>
</ul>
</li>

<li>
<ul class="dropdown-menu last-dropdown-level">
<div class="row">
<div class="menu-item"></div>
<div class="menu-item"></div>
</div>
</ul>
</li>
...


var dropdownMenu = $('.dropdown-menu.last-dropdown-level');
    var dropdownMenuRow = dropdownMenu.children('.row');

    dropdownMenu.each(function () {
        var countMenusRow = $(this).children('.row').size();
        

        dropdownMenuRow.each(function () {
           var countRowsItem = $(this).children('.menu-item').size();
           if(countRowsItem===3) {
                dropdownMenu.css('width', '720px');
            }
           if(countRowsItem===4) {
               dropdownMenu.css('width', '1005px');
           }
        });

    });


Вот кусок кода html. Это выпадающее меню 3-го уровня. Суть вот в чем. Когда я делаю проверку на количество элементов в row и присваиваю ширину выпадающему меню, то эта ширина присваивается всем выпадашкам, т.е. присваивается значение ширины для 4х элементов, а по факту всего 3 элемента. Нужно, чтобы для каждого выпадающего меню присваивалась своя ширина. Подскажите, что не так сделал в коде.
  • Вопрос задан
  • 195 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@vladzvezdin Автор вопроса
Сам разобрался. Изменил код в "if". Я пытался присвоить значения всему контейнеру, а решил проблему, добавлением этих свойств к "row". Решил также использовать добавление классов, а не прописывая css прям в js. Может кому-то будет полезно
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы