Преобразование шаблона CSS в asp.net с мастер-страницами

0

Я купил шаблон css. который реализует навигацию таким образом.

 <li class="current"><a href="services.html">Services</a></li>
 <li><a href="news.html">News</a></li>
 <li><a href="portfolio.html">Portfolio</a></li>
 <li><a href="elements.html">Elements</a></li>
 <li><a href="contact.html">Contact</a></li>

Он содержит навигационный тег в каждом html файле и помечает класс элемента списка как текущий для текущей страницы.

Теперь я конвертирую это в макет главной страницы. Как я могу определить текущую страницу и добавить класс в элемент списка с помощью JavaScript. Или любое другое решение этой проблемы.

  • 0
    вы используете MVC?
  • 0
    покажи свой код asp.net по крайней мере
Показать ещё 4 комментария
Теги:

1 ответ

1
Лучший ответ

Это простой способ сделать это (используя jQuery):

function syncMenu () {
        var url = window.location.href, pageStart, pageEnd, pageName;
        pageStart = url.lastIndexOf("/") + 1;
        pageEnd = url.lastIndexOf(".");
        pageName = url.substring(pageStart, pageEnd);

        $('#Menu').find('li').removeClass('selected');
        $('#Menu').find('a[href^="' + pageName + '"]').parent().addClass('current');

} 

Вызовите эту функцию в первую очередь, когда ваша страница загружается, т.е. первая вещь в document.ready.

Идея заключается в том, что у вас есть имя страницы в качестве anchor href. Мы извлекаем имя страницы из текущего url и используем это для поиска a во всех li который содержит это имя страницы, как href. Добавление класса (текущий в вашем случае) к этому li.

  • 0
    Еще один вопрос, у меня также есть элемент, который показывает домашнюю >> текущую страницу .. жестко запрограммирован на каждой странице, как я могу отправить текущую страницу с кодом
  • 0
    Это зависит. Если ваш элемент является отдельным для текущей страницы, просто $('#elemId').text(pageName) .

Ещё вопросы

Сообщество Overcoder
Наверх
Меню