2015-03-06 3 views
0

Мои навигационные ссылки на страницы макета и они выглядят как:Активная ссылка не меняется цвет

<h3 id="my-navigation"> 
    <a href="@Url.Action("Questions", "Question")">ANKETA</a> 
    <a href="@Url.Action("Statistics","Administrator")">STATISTIKA</a> 
    ... 
</h3> 

мне нужно активная ссылка, чтобы изменить цвет. CSS для достижения этой цели:

#my-navigation a.active { 
    text-decoration:none; 
    color:#E0EBEB; 
} 

Поскольку нет ссылки навигации во всех HTML-страниц, но только в макете, я попытался с JavaScript:

$('#my-navigation a').click(function() { 
    $('#my-navigation a').removeClass('active'); 
    $(this).addClass('active'); 
}); 

Почему это не работает?

EDIT: Я понял, что это дает эффект только временный (во время щелчка). Например:

$(document).ready(function() { 
    $('#my-navigation a').click(function() { 
     $('#my-navigation a').addClass('active'); 
    }); 
}); 

мигает все ссылки при нажатии. Так что делать?

+1

Работает отлично здесь: http://jsfiddle.net/seyenaz/q5xv9yqp/ –

+0

Вы обрабатываете поведение по умолчанию в другом месте или загружаете новую страницу при нажатии ссылки? (Я понятия не имею, что '@ @ Url.Action (...)" 'разрешает.) –

+0

Я предполагаю, что у вас есть ошибка где-то еще, что останавливает выполнение js, проверяйте консоль разработчика на наличие ошибок и предоставляйте больше info пожалуйста. –

ответ

0

Ваш код должен работать, по крайней мере, он работает здесь: https://jsfiddle.net/kvk1keds/ Я только что изменил метод щелчка для

$('#my-navigation a').on('click', function (ev) {}); 

Вы должны убедиться, что метод работает и класс «активный» создается.

+0

Он действует только временно, во время клика. Например: $ ('# my-navigation a'). Click (function() { $ ('# my-navigation a'). AddClass ('active'); }); мигает все ссылки при нажатии. – bambi

1

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

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

$(document).ready(function() { 
    $('#my-navigation a').click(function() { 
     $('#my-navigation a').removeClass('active'); 
     $(this).addClass('active'); 
    }); 
}); 

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

$(function() { 

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

Смежные вопросы