- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Всем привет!
Помогите пожалуйста решить одну задачку.
Есть горизонтальное, открывающиеся меню на сайте.
Главная | Продукция | Контакты | и т.д.
Понятно, что если наводим курсором на Продукция, то открывается меню.
В открывшемся меню Продукция ссылки на разделы, к примеру(автомобильная тематика): Автошины и Антенны
Автошины имеют категорию родителя (http://site.ru/product/avtoshiny/)
Антенны имеют уже другую категорию родителя (http://site.ru/komplect/antenny/)
Родительская категория Продукция (http://site.ru/product/)
Ниже html-код меню:
<div id="headmenu">
<ul><li><a href="http://site.ru/product">Продукция</a>
<ul>
<li><a href="http://site.ru/product/avtoshiny/">Автошины</a></li>
<li><a href="http://site.ru/komplect/antenny/">Антенны</a></li>
</ul>
</ul></li>
</div>
Теперь переходим к сути задачи, которая заключается в JS-коде, который навешивает подсветку текущего пункта меню, при чём помимо текущего пункта меню, где находится посетитель нужно подсветить и родительский пункт меню, а это во всех случаях Продукция, при том, что по url не совпадает с родительским url.
Ниже работающий js-код:
<script type="text/javascript">
$(function () { // когда страница загружена
$('#headmenu a').each(function () { // проходим по нужным нам ссылками
var location = window.location.href // переменная с адресом страницы
var link = this.href // переменная с url ссылки
var result = location.match(link); // результат возвращает объект если совпадение найдено и null при обратном
if(result != null) { // если НЕ равно null
$(this).addClass('active'); // добавляем класс
}
});
});
</script>
Код рабочий и подсвечивает родителя и текущий пункт меню, если совпадает родительский и текущий раздел, т.е. находясь на странице Автошины, в меню подсвечивает, как Продукция, так и Автошины, а вот находясь на Антенны, Продукция не подсвечивается, только Антенны.
Ребята подскажите пожалуйста, что подправить в js коде, чтобы он навешивал подсветку, даже если родительский раздел на совпадает.Заранее весьма и весьма благодарен за подсказку!!!
p/s/ пример меню, если со слов не понятно рассказал hxxp://flotenk.ru/products/kns/kns_flotenk/
не проще ли к ссылкам прилепить доп. параметр и уже красить по нему?
Ну что то вроде того
И не нужно будет с ссылками работать
Ms-Dred, благодарю за ответ!
Не подскажете, как в js прописать, чтобы подсветка текущего пункта меню и родителя через data-url="product"
В JS совсем не силён
Можно и ID и класс вместо data указать, а так как то так
У вас сайт на голом HTML?
На JS только костылей наделаете, вроде такого 🙅
Во!Ближе к делу!
Пока подсвечивание(а точнее подчёркивание) происходит у родителя Продукция и всех пунктов меню(антенны и автошины) по вашему примеру, а нужно как вы правильно понял только у текущего+родитель.
Может в js не правильно прописал.Сделал кстати классом.
$(function () { // когда страница загружена
$('#headmenu').find('.line-block').find('a').addClass('active').each(function () { // проходим по нужным нам ссылками
var location = window.location.href // переменная с адресом страницы
var link = this.href // переменная с url ссылки
var result = location.match(link); // результат возвращает объект если совпадение найдено и null при обратном
if(result != null) { // если НЕ равно null
$(this).addClass('active'); // добавляем класс
}
});
});
</script>
<div id="headmenu">
<ul><li class="line-block"><a href="http://site.ru/product">Продукция</a>
<ul>
<li class="line-block"><a href="http://site.ru/product/avtoshiny/">Автошины</a></li>
<li class="line-block"><a href="http://site.ru/komplect/antenny/">Антенны</a></li>
</ul>
</ul></li>
</div>
---------- Добавлено 30.12.2014 в 04:50 ----------
У вас сайт на голом HTML?
Верно, HTML\CSS\JS