0

location.hash を使用してページを開き、他の項目をクリックする前に、jQuery プラグイン ハッシュ変更でアコーディオンとプラグインを使用して Twitter ブートストラップを試みています。

良い解決策があります、助けてくださいありがとう

hashchange タグを使用: #collapseOne、#collapseTwo、#collapseThree、

問題

  • アイテムオープン
  • アイテムオープン
  • アイテムクローズ

html

    <div class="row">
    <div class="span32">
        <div class="accordion" id="accordion2">
            <div class="accordion-group">
                <div class="accordion-heading">
                    <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseOne">Item #1</a>
                </div>
                <div id="collapseOne" class="accordion-body collapse">
                    <div class="accordion-inner">content1</div>
                </div>
            </div>
            <div class="accordion-group">
                <div class="accordion-heading">
                    <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseTwo">#2</a>
                </div>
                <div id="collapseTwo" class="accordion-body collapse">
                    <div class="accordion-inner">content2</div>
                </div>
            </div>
            <div class="accordion-group">
                <div class="accordion-heading">
                    <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseThree">#3</a>
                </div>
            </div>
        </div>
    </div>
</div>

js

    $(function () {

        $(window).hashchange(function () {
            var hash = location.hash;
            var action = hash.replace('#', '');

            $('.accordion-heading a').click(function () {
                window.location.hash = $(this).attr("href");
                console.log('--------');
                console.log(location.pathname);
                console.log(hash);
            });

            switch (action) {
                case "collapseOne":
                    $("#collapseOne").collapse('toggle');
                    break;
                case "collapseTwo":
                    $("#collapseTwo").collapse('toggle');
                    break;
                case "collapseThree":
                    $("#collapseThree").collapse('toggle');
                    break;
                default:

                    break;
            };
        });
        $(window).hashchange();
    });

デモはこちら

ここにコードがあります

4

2 に答える 2

1

これを試してください(ハッシュ履歴の更新コード):

$('.accordion-heading a').click(function(e) {
    var hash = $(this).attr('href');
    document.title = 'The hash is ' + (hash.replace('#', '') || 'blank') + '.';
    location.hash = hash;
});

jsフィドル

于 2013-07-16T10:57:22.710 に答える