2

私は Twitter Bootstrap 3.0 を使用しており、ScrollSpyプラグインを使用して、下にスクロールするときに「nav」リンクを有効にしています。ここで、ScrollSpy イベント「activate.bs.scrollspy」に応答して、(window.history.pushstate を使用して) アドレス バーの URL を自動的に更新したいと考えています。

ScrollSpy がアクティブ化した "nav" 要素を特定するにはどうすればよいですか?

私のコードは次のようになります。

<body data-spy="scroll" data-target="#primarynavbar">
    <div id="primarynavbar" class="navbar navbar-inverse navbar-fixed-top" role="navigation">
...
...
        <li><a href="#contact">Contact Us</a></li>
...
...
    <div id="contact" />
...
...
    <script>
        $('#primarynavbar').on('activate.bs.scrollspy', function () {
            window.history.pushstate('http://abcd.com#contact')
        });
    </script>
...
4

1 に答える 1

4

アクティブなクラスを探して、子アンカーの href 属性を取得できると思います。

$('#primarynavbar').on('activate.bs.scrollspy', function () {
   var hash = $(this).find("li.active a").attr("href");
   window.history.pushstate('http://abcd.com' + hash);
});
于 2014-01-30T02:35:38.010 に答える