Задача - при клике подсветить пункт. Если клик совершается на том же уровне (уровень 1), снять выделение с других пунктов кроме текущего.
Есть меню типа:
<ul class="menu">
<li class="open" data-level="1">
<a href="">Category</a>
<ul class="submenu">
<li class="open" data-level="2">Subcategory11</li>
<li class="open" data-level="2">Subcategory12</li>
</ul>
</li>
<li class="open" data-level="1">
<a href="">Category2</a>
<ul class="submenu">
<li class="open" data-level="2">Subcategory21</li>
<li class="open" data-level="2">Subcategory22</li>
</ul>
</li>
</ul>
Обработка события клика на пункт меню:
$('li.open').on("click",function(){
$(this).addClass('act');
console.log('data='+$(this).data('level'));
/* считаем сколько элементов активно */
$('ul.menu').each(function () {
actMenu=$(this).find('.act').length;
});
if (($(this).attr('data-level'))<actMenu) {
$(this).parent().find('li.act').removeClass('act');
$(this).addClass('act');
}
});
При клике результат такой:
Клик на первый пункт -
data=1
Клик на второй пункт -
data=2
data=1
Можете помочь решить проблему? Спасибо.