- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Всем привет!
Помогите пожалуйста решить одну задачку.
Есть горизонтальное, открывающиеся меню на сайте.
Главная | Продукция | Контакты | и т.д.
Понятно, что если наводим курсором на Продукция, то открывается меню.
В открывшемся меню Продукция ссылки на разделы, к примеру(автомобильная тематика): Автошины и Антенны
Автошины имеют категорию родителя (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 только костылей наделаете, вроде такого 🙅
$("#headmenu a[href*='" + window.location.pathname + "']").addClass('active')
.parents().eq(2)
.find('a:first')
.addClass('active');
Во!Ближе к делу!
Пока подсвечивание(а точнее подчёркивание) происходит у родителя Продукция и всех пунктов меню(антенны и автошины) по вашему примеру, а нужно как вы правильно понял только у текущего+родитель.
Может в 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