0

次のナビゲーションがあります。

<ul id="chooseType" class="chooseType">
<li><a id="active" href="#" title="" class="active selected">Active</a></li>
<li><a id="inactive" href="#" title="" class="inactive">Inactive</a></li>
</ul>

このスクリプトでは:

        <script th:inline="javascript">
                            /*<![CDATA[*/
                            $(document).ready(function() {

                                $('#active').click(function(){
                                    $('#active').addClass('selected');
                                    $('#inactive').removeClass('selected');
                                    $('#activeList').show();
                                    $('#inactiveList').hide();
                                });
                                $('#inactive').click(function(){
                                    $('#active').removeClass('selected');
                                    $('#inactive').addClass('selected');
                                    $('#activeList').hide();
                                    $('#inactiveList').removeClass('hidden');
                                    $('#inactiveList').show();
                                });
                            });
                            /*]]>*/
        </script>

別のページのリンクをクリックすると、非アクティブなビューに直接移動できる必要があります。別のページのリンクからページにアクセスしたときに ('#inactive').click をトリガーするにはどうすればよいですか? スペースと単純さのために、表示/非表示にする div は含まれていません。

編集:欠落している}); わかりやすくするために削除した無関係なコードで、意図せず消えてしまいました。

4

2 に答える 2

1

IMO の最もクリーンな方法は、無名関数を .click() ハンドラーから引き出し、名前を付けてから、#inactive関数をバインドして、ロード時と .click() 時に実行することです。次のようにします。

                    $(document).ready(function() {
                        var active = function(){
                            $('#active').addClass('selected');
                            $('#inactive').removeClass('selected');
                            $('#activeList').show();
                            $('#inactiveList').hide();};
                        var inactive = function(){
                            $('#active').removeClass('selected');
                            $('#inactive').addClass('selected');
                            $('#activeList').hide();
                            $('#inactiveList').removeClass('hidden');
                            $('#inactiveList').show();};

                        $('#active').click(active);
                        $('#inactive').click(inactive);
                        inactive();
                    });
于 2013-10-08T19:13:15.973 に答える