jQuery从父li中的链接切换嵌套ul
这应该很简单,但当“触发器”是li中的锚时,我无法让它工作。当单击以切换适当的嵌套ul时,我想要锚定。 以下是HTML:jQuery从父li中的链接切换嵌套ul,jquery,Jquery,这应该很简单,但当“触发器”是li中的锚时,我无法让它工作。当单击以切换适当的嵌套ul时,我想要锚定。 以下是HTML: <ul id="specs"> <li>top level li</li> <li>top level li</li> <li>li to trigger nested list <a class="trigger" href="firstTrigger">first
<ul id="specs">
<li>top level li</li>
<li>top level li</li>
<li>li to trigger nested list <a class="trigger" href="firstTrigger">first trigger</a> or <a class="trigger" href="secondTrigger">second trigger</a>.
<ul id="hiddenList1">
<li class="title">Title 1</li>
<li>something</li>
<li>something</li>
</ul>
<ul id="hiddenList2">
<li class="title">Title 2</li>
<li>something</li>
<li>something</li>
</ul>
</li>
</ul>
非常感谢您的帮助。这里有一个尝试解决的问题:
<ul id="specs">
<li>top level li</li>
<li>top level li</li>
<li>li to trigger nested list <a class="trigger" href="firstTrigger">first trigger</a> or <a class="trigger" href="secondTrigger">second trigger</a>.
<ul id="firstTrigger">
<li class="title">Title 1</li>
<li>something</li>
<li>something</li>
</ul>
<ul id="secondTrigger">
<li class="title">Title 2</li>
<li>something</li>
<li>something</li>
</ul>
</li>
</ul>
$(function() {
$('.trigger').click(function() {
$("'#" + $(this).attr('href')).toggle('slow');
return false;
)};
});
这里有一个尝试的修复程序:
<ul id="specs">
<li>top level li</li>
<li>top level li</li>
<li>li to trigger nested list <a class="trigger" href="firstTrigger">first trigger</a> or <a class="trigger" href="secondTrigger">second trigger</a>.
<ul id="firstTrigger">
<li class="title">Title 1</li>
<li>something</li>
<li>something</li>
</ul>
<ul id="secondTrigger">
<li class="title">Title 2</li>
<li>something</li>
<li>something</li>
</ul>
</li>
</ul>
$(function() {
$('.trigger').click(function() {
$("'#" + $(this).attr('href')).toggle('slow');
return false;
)};
});
试试这个:
HTML:
试试这个:
HTML:
节省大量时间……只需使用Superfish。@bpeterson-有趣…我在导航下拉列表中使用它,但没有想到在此处使用它……节省大量时间……只需使用Superfish。@bpeterson-有趣…我在导航下拉列表中使用它,但没有想到在此处使用它……完全符合我的要求添加ul-li-ul{display:none;}如何使它们工作,从而只有一个可见?也就是说,如果您触发第一个列表,然后单击第二个触发器,那么当第二个触发器滑入时,第一个触发器会向上滑动吗?有点像手风琴?这有点棘手,但给你一个想法,看这个:太好了,谢谢。我真的理解你的代码,只是我自己想不出来。thx再次完全按照我的要求工作,添加了ul-li-ul{display:none;}我如何让它们工作,只有一个可见?也就是说,如果您触发第一个列表,然后单击第二个触发器,那么当第二个触发器滑入时,第一个触发器会向上滑动吗?有点像手风琴?这有点棘手,但给你一个想法,看这个:太好了,谢谢。我真的理解你的代码,只是我自己想不出来。再次使用thx.toggle(slow)应该是toggle('slow'),
)}代码>应为})代码>,没什么大不了的-我总是犯这样的错误。顺便说一句,我没有跟踪你:)。我想我们今天都在问jQuery问题。@Matt-所以我让它工作了,谢谢你准确地回答了我的问题,但我遗漏了一些东西。当另一个打开时,是否可以使一个关闭,因此一次只显示一个?切换(慢速)应为切换(“慢速”),)}代码>应为})代码>,没什么大不了的-我总是犯这样的错误。顺便说一句,我没有跟踪你:)。我想我们今天都在问jQuery问题。@Matt-所以我让它工作了,谢谢你准确地回答了我的问题,但我遗漏了一些东西。当另一个打开时,是否可以关闭其中一个,以便一次只显示一个?
$('.trigger').click(function() {
$(this).siblings('ul').eq($(this).index()).toggle('slow');
return false;
});
<ul id="specs">
<li>top level li</li>
<li>top level li</li>
<li>li to trigger nested list <a class="trigger" href="hiddenList1">first trigger</a> or <a class="trigger" href="hiddenList2">second trigger</a>.
<ul id="hiddenList1">
<li class="title">Title 1</li>
<li>something</li>
<li>something</li>
</ul>
<ul id="hiddenList2">
<li class="title">Title 2</li>
<li>something</li>
<li>something</li>
</ul>
</li>
</ul>
$(function() {
$('.trigger').click(function() {
var id = $(this).attr('href');
$('#' + id).toggle('slow');
return false;
});
});