jQuery добавление класса в библиотеку с использованием хеша?

0

Я пытаюсь закодировать некоторый jQuery, чтобы проверить, является ли ссылка в моем неупорядоченном списке текущей просматриваемой страницей, а затем добавить класс "текущий" к этому элементу списка.

Это код, который я использую в настоящее время:

$(document).ready(function() {
    //<![CDATA[
    jQuery(function() {
      jQuery('.sidebar li').each(function() {
        var href = jQuery(this).find('a').attr('href');
        if (href === window.location.pathname) {
          jQuery(this).addClass('current');
        }
      });
    });  
    //]]>
});

Это работает в некоторой степени, но поскольку все ссылки на моей боковой панели являются хешами, она всегда устанавливает текущий класс в первом ли. Например, вот как выглядят мои ссылки:

<ul>
    <li><a href="/posts#page1" />Table of Contents</a></li>
    <li><a href="/posts#page10" />Chapter 1</a></li>
    <li><a href="/posts#page25" />Chapter 2</a></li>
</ul>

В этом примере текущий класс применяется только к "Оглавлению" li, даже если вы находитесь на другой странице.

Можно ли выполнить то, что я пытаюсь таким образом?

Благодарю!

  • 1
    Попробуйте window.location.hash
Теги:

1 ответ

3
Лучший ответ

Просто добавьте location.hash в путь. Он будет пустым, если его не будет, поэтому он будет работать таким образом для ссылок без него.

if (href === window.location.pathname + window.location.hash) {
  • 0
    Спасибо, это именно то, что я искал!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню