0
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<style type="text/css">
    ul ul
    {
        display: none;
    }
    ul li
    {
        list-style-type: none;
    }

</style>
<script type="text/javascript">
    $(document).ready(function () {
        $('ul li').addClass('reveal');
        $('.reveal').live('click', function (event) {
            $(this).children('ul').slideDown();
            $(this).siblings('li').children().slideUp();

        });
    });
</script>

<ul>
    <li>a
        <ul>
            <li>inner1
                <ul>
                    <li>bonner1
                        <ul>
                            <li>donner1<ul>
                                <li>konner1</li>
                                <li>konner2</li>
                            </ul>
                            </li>
                            <li>donner2</li>
                        </ul>
                    </li>
                    <li>bonner2</li>
                </ul>
            </li>
            <li>inner2</li>
        </ul>
    </li>
    <li>b
        <ul>
            <li>inner3</li>
            <li>inner4</li>
        </ul>
    </li>
</ul>

liclickイベントですべてのsybling内部要素を閉じたい。このコードは機能しますが、望ましい方法ではありません。sybling要素は閉じますが、sybling要素内の子要素は閉じません。どうすればそれを達成できますか?

4

2 に答える 2

1

あなたが探していると思うのは:

$(this).siblings('li').find('ul').slideUp();

<ul />これにより、兄弟内にネストされたすべての要素がスライドアップされます<li />

それはあなたが望むものですか?

于 2012-12-09T10:31:07.867 に答える
0

この関数を私のコードに追加する方法:enter code here

このフィドルを確認してください:https ://jsfiddle.net/te366hu2/2/

于 2016-08-04T11:06:18.177 に答える