Я пытаюсь закодировать некоторый 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, даже если вы находитесь на другой странице.
Можно ли выполнить то, что я пытаюсь таким образом?
Благодарю!
Просто добавьте location.hash
в путь. Он будет пустым, если его не будет, поэтому он будет работать таким образом для ссылок без него.
if (href === window.location.pathname + window.location.hash) {
window.location.hash