навигация добавить активную ссылку в Jquery - PullRequest
1 голос
/ 03 декабря 2009

Я использую тот же js, который ответил на этот вопрос: /257293/aktivnaya-navigatsiya-s-pomoschy-jquery-nevozmozhno-primenit-klass-po-umolchaniy-dlya-privyazki....

Моя проблема в том, что вместо добавления класса к ссылке по умолчанию я хотел бы добавить класс к ссылке с тем же каталогом.

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

Вот навигация

    <div id="nav">
              <ul>
                <li><a href="index.html">Home</a></li>
                <li><a href="test/index.html">Page2</a></li>
                <li><a href="test2/index.html">Page3</a></li>
</ul>
</div>

Ниже мое задание. первая часть работает отлично, вторая часть, где у меня проблемы:

function markActiveLink() {var currentURL = window.location.toString().split("/");
$("#nav li a").filter(function() {
//alert(currentURL);
    return $(this).attr("href") == currentURL[currentURL.length-1];
    }).parent().addClass("current");
if($("#nav li").hasClass("current") == false) {
     alert(currentURL[currentURL.length-2]);

    }
 }

markActiveLink();

Заранее спасибо!

1 Ответ

0 голосов
/ 03 декабря 2009

Это должно работать. Учитывает весь путь, а не только последнюю его часть.

function markActiveLink() {
    var path = location.pathname.substring(1);
    $('#nav li a[href="' + path + '"]').parent().addClass("current");
    if($("#nav li").hasClass("current") == false) {
      //whatever e.g. select default
      $('#nav li').eq(0).addClass("current");
    }
}

markActiveLink();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...