jQuery从父li中的链接切换嵌套ul

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

这应该很简单,但当“触发器”是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 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;
    });
});