Я просматривал, пытаясь найти подходящее решение для назначения класса "активный/текущий" элементам меню на главной странице. Линия разделяется на середину относительно того, следует ли делать этот клиент на стороне сервера.
Честно говоря, я новичок в JavaScript и MVC, поэтому у меня нет мнения. Я бы предпочел сделать это "самым чистым" и наиболее подходящим способом.
У меня есть следующий код jQuery, чтобы назначить "активный" класс <li> item... единственная проблема заключается в том, что элемент меню "индекс" или элемент по умолчанию всегда будет присвоен активному классу, потому что URL-адрес всегда является подстрокой других ссылок меню:
(default) index = localhost/
link 1 = localhost/home/link1
link 2 = localhost/home/link1
$(function () {
var str = location.href.toLowerCase();
$('#nav ul li a').each(function() {
if (str.indexOf(this.href.toLowerCase()) > -1) {
$(this).parent().attr("class","active"); //hightlight parent tab
}
});
Есть ли лучший способ сделать это, ребята? Кто-нибудь хотя бы поможет мне получить версию на стороне клиента? Так что "индекс" или ссылка по умолчанию всегда "активны"? Есть ли способ назначить поддельное расширение методу индекса? а не только базовый URL-адрес, он будет localhost/home/dashboard
, чтобы он не был подстрокой каждой ссылки?
Честно говоря, я действительно не придерживаюсь методов выполнения этой серверной части, поэтому я пытаюсь сделать это на стороне клиента с помощью jQuery... любая помощь будет оценена по достоинству.