gpt4 book ai didi

javascript - jQuery 并选择下一个列表项对象

转载 作者:行者123 更新时间:2023-11-28 16:33:29 25 4
gpt4 key购买 nike

我有一个使用列表和子导航构建的导航作为父列表内的列表。子导航位于其对应的主导航链接的下一个列表项中:

它位于 id 为“nav”的 div 中

<ul>
<li><a href="#">Nav main 1</a></li>
<li>
<ul>
<li>sub 1</li>
<li>sub 2</li>
<li>sub 3</li>
<li>sub 4</li>
</ul>
</li>
<li><a href="#">Nav main 2</a></li>
<li>
<ul>
<li>sub 1</li>
<li>sub 2</li>
<li>sub 3</li>
<li>sub 4</li>
</ul>
</li>
</ul>

目前我有以下 jquery:

$(document).ready(function() {
$("#nav ul li a[href^='#']").each(function(){
if ($(this).next().is(':visible')) {
$(this).next().hide();
} else {
$("#nav ul li a[href^='#']").each(function(){
$(this).next().hide();
});

$(this).next().show();
}
});

我认为这可以使所有子菜单隐藏,然后显示已单击的子菜单。由于某种原因什么也没有发生。我检查了控制台(firebug),没有显示错误。

现在已经很郁闷了! :-/

编辑:这是答案:

$(document).ready(function() {
$("#nav ul li a[href^='#']").each(function(){
$(this).parent().next().hide();
$(this).click(function() {

if ($(this).parent().next().is(':visible')) {
$(this).parent().next().hide();

} else {
$("#nav ul li a[href^='#']").each(function(){
$(this).parent().next().hide();

});
//then reshow and label the clicked nav
$(this).parent().next().show();
}

});
});

});

最佳答案

HTML:

<div id="nav">
<ul>
<li>
<a href="#">Nav main 1</a>
<ul>
<li>sub 1</li>
<li>sub 2</li>
<li>sub 3</li>
<li>sub 4</li>
</ul>
</li>
<li>
<a href="#">Nav main 2</a>
<ul>
<li>sub 1</li>
<li>sub 2</li>
<li>sub 3</li>
<li>sub 4</li>
</ul>
</li>
</ul>
</div>

JavaScript:

var s = $('#nav ul ul').hide();

$('#nav a').click(function() {
var u = $(this).next();

u.is(':visible') ? u.hide() : ( s.hide(), u.show() );
return false;
});

现场演示: http://jsfiddle.net/Tq6LM/1/

关于javascript - jQuery 并选择下一个列表项对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4934199/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com