Как в Bootstrap определить "активный" элемент навигации?
Я использую Twitter Bootstrap 3.0, используя плагин ScrollSpy, чтобы активировать мои навигационные ссылки при прокрутке вниз. Теперь я хочу автоматически обновить URL в адресной строке (используя window.history.pushstate) в ответ на событие ScrollSpy "activ.bs.scrollspy".
Как мне определить элемент nav, который ScrollSpy активировал для меня?
Мой код выглядит примерно так.
<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>
...
1 ответ
Решение
Я хотел бы предположить, что вы можете найти активный класс и получить атрибут дочернего якоря href:
$('#primarynavbar').on('activate.bs.scrollspy', function () {
var hash = $(this).find("li.active a").attr("href");
window.history.pushstate('http://abcd.com' + hash);
});