1

さて、私は軽量でシンプルなドロップダウンに取り組んでいます。そして、私はこの小さな問題に出くわしました:

<script>
$(document).ready(function () {
$('ul li:first a').click(function () {
    if ($(this).attr('class') != 'active') {
        $('.hideContent').slideUp(300);
        $('.showContent').removeClass('active');
        $(this).addClass('active').next('ul').slideDown(300);
        event.stopPropagation();
    }
    else {
        $(this).removeClass('active');          
        $('.hideContent').slideUp();
    }       
});
});
</script>

:firstは、最初のulに対してのみトリガーされます。現在、複数のulを使用しています。

    <ul>
    <li><a href="#"><span class="plus">+</span><span class="minus">-</span>Administração</a>
        <ul class="hideContent">
            <li><a href="#">Item</a></li>
            <li><a href="#">Item</a></li>
            <li><a href="#">Item</a></li>
            <li><a href="#">Item</a></li>
            <li><a href="#">Item</a></li>
        </ul>
    </li>
</ul>
    <ul>
    <li><a href="#"><span class="plus">+</span><span class="minus">-</span>Administração</a>
        <ul class="hideContent">
            <li><a href="#">Item</a></li>
            <li><a href="#">Item</a></li>
            <li><a href="#">Item</a></li>
            <li><a href="#">Item</a></li>
            <li><a href="#">Item</a></li>
        </ul>
    </li>
</ul>

:firstは、各ulの最初のliをトリガーするべきではありませんか?それとも私は間違った方法で働いていますか?

前もって感謝します。

4

1 に答える 1

4

最初は1つの要素にのみ一致し、:first-child代わりに使用してみてください。

これは単一の要素にのみ一致しますが、:first-childは複数の要素に一致する可能性があります:親ごとに1つ。

http://api.jquery.com/first-selector/

于 2012-09-25T16:24:50.523 に答える