我正在做的导航有点小问题。
我想要我的导航滑下子菜单,而不是链接到任何东西,如果他们有孩子。如果子对象是active (),那么父对象也应该是active的,并自动显示子对象。到目前为止,我做到了这一点。
现在,如果您单击这些家长,我希望他们更改班级。在.active和普通样式之间切换。我只能获得标准链接来这样做,如果你点击一个不活跃的父母,活跃的父母应该滑上子链接并被停用。
有谁能帮我解决这个问题吗?
到目前为止,我的代码如下所示:
<ul class="menu collapsible expandactive" id="products">
<li class="item"><a href="#" >Tryksager</a>
<ul>
<li><a href="#">A3 / A4 Plakater</a></li>
<li><a href="#">Blokke</a></li>
<li><a href="#">Brevpapir</a></li>
<li><a href="#">Flyers / løsark</a></li>
<li><a href="#">Foldere</a></li>
<li><a href="#">Kuverter</a></li>
<li><a href="#">Visitkort</a></li>
</ul>
</li>
<li class="item active parent"><a href="#" >Storformat print</a>
<ul>
<li><a href="#">Plakater</a></li>
<li><a href="#">Canvas / Lærred</a></li>
<li class="active"><a href="#">Klistermærker</a></li>
<li><a href="#">Folie</a></li>
<li><a href="#">Rollup System</a></li>
</ul>
</li>
<li class="item"><a href="#" >Grafisk Design</a></li>
<li class="item"><a href="#" >Hjemmesider</a></li>
<li class="item"><a href="#" >Gør Det Selv</a></li>
<li class="item"><a href="#" >Om Trykkeriet</a></li>
<li class="item"><a href="#" >Diverse</a></li>
</ul>我的jQuery是这样的:
function initProducts() {
$('ul#products ul').hide();
$.each($('ul#products'), function(){
$('#' + this.id + '.expandactive li.active ul').show();
});
$('ul#products li a').click(
function() {
var checkElement = $(this).next();
var parent = this.parentNode.parentNode.id;
if($('#' + parent).hasClass('noaccordion')) {
$(this).next().slideToggle('normal').removeClass('active');
return false;
}
if((checkElement.is('ul')) && (checkElement.is(':visible'))) {
if($('#' + parent).hasClass('collapsible')) {
$('#' + parent + ' ul:visible').slideUp('normal');
}
return false;
}
if((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
$('#' + parent + ' ul:visible').slideUp('normal');
checkElement.slideDown('normal');
return false;
}
}
);
}
$(document).ready(function() {initProducts();});发布于 2012-01-26 19:06:12
我不是绝对确定你的目标是什么。但是,如果您只想将parents类更改为active,那么应该可以这样做:
function initProducts() {
$('ul#products ul').hide();
$.each($('ul#products'), function(){
$('#' + this.id + '.expandactive li.active ul').show();
});
$('ul#products li a').click(
function() {
var checkElement = $(this).next();
var parent = this.parentNode.parentNode.id;
if($('#' + parent).hasClass('noaccordion')) {
$(this).next().slideToggle('normal').removeClass('active');
return false;
}
if((checkElement.is('ul')) && (checkElement.is(':visible'))) {
if($('#' + parent).hasClass('collapsible')) {
$('#' + parent + ' ul:visible').slideUp('normal');
// ADDED CODE
$(this).parent().removeClass("active");
$(this).parent().find("li").removeClass("active");
// END
}
return false;
}
if((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
$('#' + parent + ' ul:visible').slideUp('normal');
checkElement.slideDown('normal');
// ADDED CODE
$(this).parent().addClass("active");
// END
return false;
}
}
);
}这是给你的jsfiddle:http://jsfiddle.net/XHCpg/
https://stackoverflow.com/questions/9016677
复制相似问题