Добавление CSS-класса с использованием jQuery - PullRequest
1 голос
/ 01 ноября 2009

Ниже я включил код jquery, который я использую, чтобы добавить класс css к ссылке в боковом столбце, который равен активному URL, но он не работает, и в какой-то момент он это сделал.

Ссылка: http://www.liquidcomma.com/portfolio/project/TSF_Robot_Ad/1/

<script type="text/javascript">
$(document).ready(function(){
      $("ul.right_submenu > li > a").each(function() {
            if ($(this).attr("href") == location.href)
            {
                  $(this).addClass("CurrentProject");
            });
};
</script>

Ответы [ 3 ]

5 голосов
/ 01 ноября 2009

Ну, кроме того, что в коде отсутствуют фигурные скобки и скобки, это можно сделать гораздо проще:

$(function(){
    $("a[href^='" + location.href + "']").addClass("CurrentProject");
});
0 голосов
/ 01 ноября 2009

По вашей ссылке мой location.href переходит на http://www.liquidcomma.com/portfolio/project/TSF_Robot_Ad/1/, но ссылка вашего проекта на странице указывает на http://www.liquidcomma.com/portfolio/project/trade_show_fabrications/1 ..., что составит attr('href') != location.href.

В других ссылках location.href будет заканчиваться косой чертой, тогда как href ссылки не будет.

Вы должны использовать что-то еще, чтобы соответствовать вашему проекту, кроме атрибута href, если вы ожидаете, что оно изменится в будущем (и, вероятно, будет).

0 голосов
/ 01 ноября 2009

В вашем скрипте есть незакрытые фигурные скобки:

$(document).ready(function(){
    $("ul.right_submenu > li > a").each(function() {
        var a = $(this);
        if (a.attr('href') == location.href) {
            a.addClass("CurrentProject");
        }
    });
});

и вы можете переписать ваш скрипт так:

$('ul.right_submenu > li > a[href=' + location.href + ']')
    .addClass('CurrentProject');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...