используя javascript, какие варианты есть, чтобы установить текущий выбранный элемент навигации? - PullRequest
0 голосов
/ 17 апреля 2009

используя javascript, какие есть варианты для установки выбранного в данный момент элемента навигации?

При условии, что страница обновляется всякий раз, когда кто-то нажимает на навигационную ссылку, единственным способом будет либо сделать это на стороне сервера, либо установить ее динамически, просматривая текущий URL?

Есть ли другие хитрости?

Ответы [ 2 ]

1 голос
/ 17 апреля 2009

Я установил атрибут класса в элементе <body> для своих страниц, например «home-section» или «products-section».

Когда страница загружается, вы можете использовать JavaScript, чтобы получить значение атрибута и соответствующим образом установить класс навигации.

if ($("body").attr("class") == 'home-section') {
    $("li#primary-nav-home").addClass("active");
}

Вы также можете выполнить то же самое с помощью простого CSS с помощью соответствующего селектора и избавиться от необходимости в классах.

body.home-section li#primary-nav-home { /* styling rules */ }

1 голос
/ 17 апреля 2009

Свойство window.location.pathname является надежным, и если бы вы использовали сравнение подстрок со списком ссылок в меню, это было бы быстро (т. Е. Не проверять регулярные выражения).

var menuLinks = document.getElementById('menu').getElementsByTagName('a');

for (var i = 0; i < menuLinks.length; i++) {
  if (menuLinks[i].href.indexOf(window.location.pathname) > -1) {
    doSomething();
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...