我正在尝试修改基于jQuery的手风琴风格导航。
它使用此代码:
$('.interior #subContent > ul > li > a.drop').click(function(){
$(this).parent().children('ul').toggle("slow");
return false;
});
我需要能够对活动页面所在的部分保持开放状态。我可以突出显示与CSS的活动链接,但可以使用一些好的建议让它对活动部分保持开放。
导航如下:
<ul>
<li><a href="#" class="drop">Products</a>
<ul>
<li><a href="printing-newproducts.html">New Products</a></li>
<li><a href="printing-inksystems.html">Ink Systems</a></li>
<li><a href="printing-specialtyinks.html">Specialty Inks</a></li>
<li><a href="printing-environmentalinks.html">Environmental Inks</a></li>
<li><a href="printing-whiteplastisolinks.html">White Plastisol Inks</a></li>
<li><a href="printing-plastisolbases.html">Plastisol Bases</a></li>
<li><a href="printing-plastisolinkseries.html">Plastisol Ink Series</a></li>
<li><a href="printing-pvcfreewaterbase.html">Non-PVC Water-Based
System</a></li>
<li><a href="printing-modifersadditives.html">Modifiers & Additives</a></li>
<li><a href="printing-completeproductlisting.html">Complete Product
Listing</a></li>
</ul>
</li>
<li><a href="#" class="drop">Technical Information</a>
<ul>
<li><a href="printing-technicaldatasheets.html">Technical Data Sheets</a></li>
<li><a href="printing-msds.html">MSDS</a></li>
<li><a href="printing-onlinecolorcard.html">Online Color Card</a></li>
<li><a href="printing-mixingsystemsoftware.html">Mixing System Software</a></li>
<li><a href="printing-technicalbulletins.html">Technical Bulletins</a></li>
</ul>
</li>
<li><a href="#" class="drop">Tips & Techniques</a>
<ul>
<li><a href="printing-tradetips.html">Trade Tips</a></li>
<li><a href="printing-galleryoftechniques.html">Gallery of Techniques</a></li>
</ul>
</li>
</ul>
注意:我尝试用jquery ui手风琴来做这件事,但我在页面上与另一个手风琴有造型冲突。
您可以在行动here中看到它:这是侧边栏导航。
感谢您的帮助。
答案 0 :(得分:1)
循环uls而不是质量作用于它们。如果您可以选择给定ul下的活动li,则不要缩小它。
编辑:我认为这会让你接近你想要的东西,它有点干编码所以我不是100%,建议测试。
$('.interior #subContent > ul > li > a.drop').click(function(){
$(this).parent().children('ul').each(function() {
if ($('li.active', this).length == 0) {
$(this).show("slow");
} else {
$(this).toggle("slow");
}
});
return false;
});
答案 1 :(得分:1)
我会在'li'元素中添加一个名称或类,以便您可以定位所需的标签,并在onready上调用'show()':
<ul>
<li name="products" ><a href="#" class="drop">Products</a>
...
</li>
<li name="technical-information"><a href="#" class="drop">Technical Information</a>
...
</li>
<li name="tips" ><a href="#" class="drop">Tips & Techniques</a>
...
</li>
</ul>
toggle()实际上调用了hide()/ show(),所以在onready上调用show()对所需的'ul'
jQuery(window).ready(function() {
jQuery('li[name=products] ul').show();
});
答案 2 :(得分:0)
我从Bryan和jshali上面得到了一些非常可靠的输入,我想发布最终的解决方案,结果非常好。
$('.interior #subContent > ul > li > a.drop').click(function(){
$(this).parent().children('ul').toggle("slow");
return false;
});
$(window).ready(function() {
$('li.products ul').show();
$('li.technical ul').show();
$('li.tips ul').show();
});
然后我将相应的类添加到list元素中。添加类比名称容易得多:
<li class="products"><a href="#" class="drop">Products</a>
非常感谢你的帮助。