Я работаю над навигацией для сайта и нуждаюсь в руководстве по динамическому добавлению класса в активную ссылку. Кроме того, как только эта ссылка установлена, и мне нужно обратиться к родителям и показать ее.jQuery - Active Link и родственные отношения
Это то, с чем я работаю. Навигация - это стиль аккордеона, но не использует интерфейс Accordion.
<ul id="menu3">
<li><a href="{site_url}">Home</a></li>
<li><a class="drop" href="#">Information</a>
<ul>
<li><a href="{site_url}information/audio">Audio</a></li>
<li><a href="{site_url}information/video">Video</a></li>
<li><a href="{site_url}information/presentations">Presentations</a></li>
</ul>
</li>
<li><a class="drop" href="#">Clinics</a>
<ul>
<li><a href="{site_url}clinics/one">Office 1</a></li>
<li><a href="{site_url}clinics/two">Office 2</a></li>
</ul>
</li>
<li><a href="{site_url}forms/">Forms</a></li>
<li><a href="{site_url}success_stories/index">Success Stories</a></li>
Тогда я немного JQuery сначала скрыть пункты подменю:
$(function(){
$('ul#menu3 ul').hide();
$('ul#menu3 > li > a.drop').click(function(){
$(this).parent().children('ul').toggle("slow");
return false;
});
До сих пор так хорошо. Все работает.
Теперь я хотел бы динамически выделить активную ссылку и я попытался с помощью:
var path = location.pathname.substring(1);
if (path)
$('ul#menu3 a[href$="' + path + '"]').attr('class', 'selected');
но это, кажется, не будет достаточно, чтобы добавить правильный класс.
Последнее, что мне нужно сделать, это открыть навигацию для активной группы. Например, если Аудио - это текущая страница, Информация раздел навигационного аккордеона будет открыт для отображения активной ссылки.
Я бы очень признателен за помощь в этом. Благодарю.
Hi Jitter, спасибо за ваш ответ. В Вене должно быть довольно поздно. Я пробовал это, и в то время как большинство элементов работало, он удалял все стили CSS, которые у меня были на месте. Мне придется немного поработать с этим, чтобы узнать, могу ли я получить jquery и css, чтобы они играли вместе. Я вернусь. – fmz
Сейчас 3:30 утра;). Должно быть только одно утверждение, которое может испортить ваш CSS. Замените 'highlight.attr ('class', 'selected');' с 'highlight.addClass ('selected');' или более конкретным, какие стили CSS стираются. – jitter
Hi Jitter, это решение настолько близко к совершенству, что я действительно надеюсь собрать его вместе. Я изменил его на highlight.addClass ('selected'); но исходный css все еще отсутствует. Стиль такой же, как и для встроенных тегов привязки - красные ссылки и наложение золота вместо темно-зеленого фона и белого текста. – fmz