Я оспариваю проблему и пытаюсь решить ее в течение нескольких часов, но не смог. У меня есть панель sidemenu, которая имеет следующий формат:
<ul class="collapse" id="menu">
<li class="panel active">// class "active" should be added <a data-target="#dashboard-nav" class="accordion-toggle" data-toggle="collapse" data-parent="#menu" href="#">
<i class="icon-dashboard"></i> Dashboard <span class="pull-right"><i class="icon-angle-left"></i></span>
</a>
<ul id="dashboard-nav" class="collapse in">// class "in" should be added
<li class=""><a href="#"><i class="icon-angle-right"></i>Default Style</a>
</li>
<li class=""><a href="#"><i class="icon-angle-right"></i> Alternative Style</a>
</li>
</ul>
</li>
<li class="panel"> <a data-target="#registrations-nav" class="accordion-toggle collapsed" data-toggle="collapse" data-parent="#menu" href="#">
<i class="glyphicon glyphicon-user"></i> Registrations<span class="pull-right"><i class="icon-angle-left"></i></span>
</a>
<ul id="registrations-nav" class="collapse">
<li><a href="#"><i class="icon-plus-sign"></i> Create Registration</a>
</li>
<li class="active"><a href="#"><i class="icon-list"></i> List Registration</a>
</li>
<li><a href="#"><i class="icon-adn"></i> Manage Registration</a>
</li>
</ul>
</li>
<li class="panel"> <a data-target="#settings-nav" class="accordion-toggle collapsed" data-toggle="collapse" data-parent="#menu" href="#">
<i class="icon-wrench"></i> Settings <span class="pull-right"><i class="icon-angle-left"></i> </span>
</a>
<ul id="settings-nav" class="collapse in">
<li class="active"><a href="/ssw/index.php/admin/service/create"><i class="icon-leaf"></i> Services</a>
</li>
<li class=""><a href="#"><i class="icon-angle-right"></i> Sites</a>
</li>
<li class=""><a href="#"><i class="icon-angle-right"></i> Service Points</a>
</li>
</ul>
</li>
</ul>
После того, как я щелкнул любой элемент <li class="panel">
в него должен быть добавлен класс "active", как <li class="panel active">
а также класс "in" в следующем '<ul>
как <li class="panel">... <ul id="dashboard-nav" class="collapse in">
Пожалуйста, дайте мне знать, если я не могу четко объяснить.
заранее спасибо
$('li.panel').click(function () {
$('li.panel').removeClass('active');//remove active class from all li with class panel
$('li.panel').children('ul').removeClass('in');//remove in class
$(this).addClass('active'); // add class active to current li
$(this).children('ul').addClass('in'); //add in class to the children ul
});
Рекомендации
Я сделал для него решение javascript следующим образом:
window.onload=start;
function start(){
var list = document.getElementById("menu").childNodes;
for(i=0;i<list.length;i++){
list[i].onclick=clicked;
}
}
function clicked(){
var input = this;
input.className = "panel active"
var child = input.getElementsByTagName("ul")[0];
child.className = "collaspe in"
}
$('li.panel')
, который будет$('li.panel ul li')
. В этом случае, как решить. Пожалуйста, помогите мне.