Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Если меню активное - как сделать развернутым (https://javascript.ru/forum/misc/76856-esli-menyu-aktivnoe-kak-sdelat-razvernutym.html)

Thai1 20.02.2019 21:36

Если меню активное - как сделать развернутым
 
Подскажите, пожалуйста, как сделать проверку имеется ли у li (то есть li>ul>li) класс active. И если имеется развернуть список (добавить к dropdown класс open, а к ul ('style', 'display:block;');
Как пример с низу, активна ссылка 1 из списка 2
$(document).ready(function(){
		$('.dropdown').on('click', function() {
			if ($(this).hasClass('open')) {
				$(this).children('ul').attr('style', '');
				$(this).removeClass('open');
			} else {
				$(this).children('ul').attr('style', 'display:block;');
				$(this).addClass('open');
			}
			return false;
		});
		$('.dropdown a').on('click', function() {
			window.location = $(this).attr('href');
		});
		$('li.dropdown > a').attr('style', 'width: 80%;');
		$('.menu li').attr('style', 'background: #36404b;');
		$('.dropdown li').attr('style', 'background: #36404b;');
});

<ul class="menu">
<li class="dropdown"><a href="/">Список 1</a><ul>
<li><a href="/">Ссылка 1</a></li>
<li><a href="/">Ссылка 2</a></li>
<li><a href="/">Ссылка 3</a></li>
<li class="last"><a href="/">Ссылка 4</a></li>
</ul></li>
<li class="last dropdown active"><a href="/">Список 2</a><ul>
<li class="active<!-- ссылка 1 из списка 2 активна, потому необходимо развернуть список 2--> "><a href="/">Ссылка 1</a></li>
<li><a href="/">Ссылка 2</a></li>
<li><a href="/">Ссылка 3</a></li>
<li class="last"><a href="/">Ссылка 4</a></li>
</ul></li>
</ul>

laimas 20.02.2019 22:35

$('.dropdown.active').trigger('click')


при загрузке страницы, все будет хоккей )

Thai1 20.02.2019 23:20

Цитата:

Сообщение от laimas (Сообщение 503878)
$('.dropdown.active').trigger('click')


при загрузке страницы, все будет хоккей )

Может что то не туда пихаю или делаю не так, но не срабатывает:(

laimas 20.02.2019 23:50

$(document).ready(function(){
        $('.dropdown').on('click', function() {
            if ($(this).hasClass('open')) {
                $(this).children('ul').attr('style', '');
                $(this).removeClass('open');
            } else {
                $(this).children('ul').attr('style', 'display:block;');
                $(this).addClass('open');
            }
            return false;
        });
        $('.dropdown a').on('click', function() {
            window.location = $(this).attr('href');
        });
        $('li.dropdown > a').attr('style', 'width: 80%;');
        $('.menu li').attr('style', 'background: #36404b;');
        $('.dropdown li').attr('style', 'background: #36404b;');

       $('.dropdown.active').trigger('click');
});

Thai1 21.02.2019 00:19

Цитата:

Сообщение от laimas (Сообщение 503881)
$(document).ready(function(){
        $('.dropdown').on('click', function() {
            if ($(this).hasClass('open')) {
                $(this).children('ul').attr('style', '');
                $(this).removeClass('open');
            } else {
                $(this).children('ul').attr('style', 'display:block;');
                $(this).addClass('open');
            }
            return false;
        });
        $('.dropdown a').on('click', function() {
            window.location = $(this).attr('href');
        });
        $('li.dropdown > a').attr('style', 'width: 80%;');
        $('.menu li').attr('style', 'background: #36404b;');
        $('.dropdown li').attr('style', 'background: #36404b;');

       $('.dropdown.active').trigger('click');
});

Спасибо!):victory:


Часовой пояс GMT +3, время: 18:53.