Скрипт выпадающего меню
Есть скрипт меню:
<script type="text/javascript"> $(document).ready(function() { var accordion_head = $('.accordion > li > a'), accordion_body = $('.accordion li > .sub-menu'); accordion_head.first().addClass('active').next().slideDown('normal'); accordion_head.on('click', function(event) { event.preventDefault(); if ($(this).attr('class') != 'active'){ accordion_body.slideUp('normal'); $(this).next().stop(true,true).slideToggle('normal'); accordion_head.removeClass('active'); $(this).addClass('active'); } }); }); </script> которое плавно разворачивается при нажатии на родительский элемент меню. При этом первый родительский элемент меню всегда активен, т.е. находится в развернутом положении, как и надо. Все нормально работает, но только на главной странице. При переходе на другую страницу меню сворачивается и при клике на любой родительский элемент меню не плавно раскрывается, а просто резким скачком открывается, т.е. получается на других странницах скрипт уже не работает. Скрипт подключен правильно, в <head></head>. |
Точно не скажу, так как не вижу html кода.
Смотрите: <script type="text/javascript"> $(document).ready(function() { var accordion_head = $('.accordion > li > a'), //Вы выбрали все <a> accordion_body = $('.accordion li > .sub-menu'); accordion_head.first().addClass('active').next().slideDown('normal');/*а вот тут и трабл, .first() выбирает всегда 1 элемент, видимо это главная страничка, где все нормально работает, а когда переходим на другую актив присваевается главной (так как это 1й элемент)*/ accordion_head.on('click', function(event) { event.preventDefault(); if ($(this).attr('class') != 'active'){/*а вот и пролетели с анимацией! актив присвоен главной а мы тут нужный элемент юзаем*/ accordion_body.slideUp('normal'); $(this).next().stop(true,true).slideToggle('normal'); accordion_head.removeClass('active'); $(this).addClass('active'); } }); }); </script> Попробуйте вместо .first использовать .closest(this) получает все ближайшие элементы с указанным селектором. Не обещаю что заработает ибо вслепую немогу |
Не, не заработало...
Вот код: .accordion, .accordion ul, .accordion li, .accordion a, .accordion span { margin: 0; padding: 0; border: none; outline: none; } .accordion li { list-style: none; } /* Layout & Style */ .accordion li > a { display: block; position: relative; min-width: 110px; padding: 0 10px 0 40px; height: 32px; color: #fdfdfd; font: bold 12px/32px Arial, sans-serif; text-decoration: none; text-shadow: 0px 1px 0px rgba(0,0,0, .35); background: #6c6e74; background: -moz-linear-gradient(top, #6c6e74 0%, #4b4d51 100%); background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#6c6e74), color-stop(100%,#4b4d51)); background: -webkit-linear-gradient(top, #6c6e74 0%,#4b4d51 100%); background: -o-linear-gradient(top, #6c6e74 0%,#4b4d51 100%); background: -ms-linear-gradient(top, #6c6e74 0%,#4b4d51 100%); background: linear-gradient(top, #6c6e74 0%,#4b4d51 100%); -webkit-box-shadow: inset 0px 1px 0px 0px rgba(255,255,255, .1), 0px 1px 0px 0px rgba(0,0,0, .1); -moz-box-shadow: inset 0px 1px 0px 0px rgba(255,255,255, .1), 0px 1px 0px 0px rgba(0,0,0, .1); box-shadow: inset 0px 1px 0px 0px rgba(255,255,255, .1), 0px 1px 0px 0px rgba(0,0,0, .1); } .accordion > li:hover > a, .accordion > li:target > a, .accordion > li > a.active { color: #3e5706; text-shadow: 1px 1px 1px rgba(255,255,255, .2); /*background: url(../img/active.png) repeat-x;*/ background: #a5cd4e; background: -moz-linear-gradient(top, #a5cd4e 0%, #6b8f1a 100%); background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#a5cd4e), color-stop(100%,#6b8f1a)); background: -webkit-linear-gradient(top, #a5cd4e 0%,#6b8f1a 100%); background: -o-linear-gradient(top, #a5cd4e 0%,#6b8f1a 100%); background: -ms-linear-gradient(top, #a5cd4e 0%,#6b8f1a 100%); background: linear-gradient(top, #a5cd4e 0%,#6b8f1a 100%); } .accordion li > a span { display: block; position: absolute; top: 7px; right: 0; padding: 0 10px; margin-right: 10px; font: normal bold 12px/18px Arial, sans-serif; background: #404247; -webkit-border-radius: 15px; -moz-border-radius: 15px; border-radius: 15px; -webkit-box-shadow: inset 1px 1px 1px rgba(0,0,0, .2), 1px 1px 1px rgba(255,255,255, .1); -moz-box-shadow: inset 1px 1px 1px rgba(0,0,0, .2), 1px 1px 1px rgba(255,255,255, .1); box-shadow: inset 1px 1px 1px rgba(0,0,0, .2), 1px 1px 1px rgba(255,255,255, .1); } .accordion > li:hover > a span, .accordion > li:target > a span, .accordion > li > a.active span { color: #fdfdfd; text-shadow: 0px 1px 0px rgba(0,0,0, .35); background: #3e5706; } /* Images */ .accordion > li > a:before { position: absolute; top: 0; left: 0; content: ''; width: 24px; height: 24px; margin: 4px 8px; background-repeat: no-repeat; background-image: url(../img/icons.png); background-position: 0px 0px; } .accordion li.files > a:before { background-position: 0px 0px; } .accordion li.files:hover > a:before, .accordion li.files:target > a:before, .accordion li.files > a.active:before { background-position: 0px -24px; } .accordion li.mail > a:before { background-position: -24px 0px; } .accordion li.mail:hover > a:before, .accordion li.mail:target > a:before, .accordion li.mail > a.active:before { background-position: -24px -24px; } .accordion li.cloud > a:before { background-position: -48px 0px; } .accordion li.cloud:hover > a:before, .accordion li.cloud:target > a:before, .accordion li.cloud > a.active:before { background-position: -48px -24px; } .accordion li.sign > a:before { background-position: -72px 0px; } .accordion li.sign:hover > a:before, .accordion li.sign:target > a:before, .accordion li.sign > a.active:before { background-position: -72px -24px; } .accordion li.altai > a:before { background-position: -96px 0px; } .accordion li.altai:hover > a:before, .accordion li.altai:target > a:before, .accordion li.altai > a.active:before { background-position: -96px -24px; } /* Sub Menu */ .sub-menu li a { color: #797979; text-shadow: 1px 1px 0px rgba(255,255,255, .2); background: #e5e5e5; border-bottom: 1px solid #c9c9c9; -webkit-box-shadow: inset 0px 1px 0px 0px rgba(255,255,255, .1), 0px 1px 0px 0px rgba(0,0,0, .1); -moz-box-shadow: inset 0px 1px 0px 0px rgba(255,255,255, .1), 0px 1px 0px 0px rgba(0,0,0, .1); box-shadow: inset 0px 1px 0px 0px rgba(255,255,255, .1), 0px 1px 0px 0px rgba(0,0,0, .1); } .sub-menu li:hover a { background: #efefef; } .sub-menu li:last-child a { border: none; } .sub-menu li > a span { color: #797979; text-shadow: 1px 1px 0px rgba(255,255,255, .2); background: transparent; border: 1px solid #c9c9c9; -webkit-box-shadow: none; -moz-box-shadow: none; box-shadow: none; } /* Functionality */ .accordion li > .sub-menu { display: none; } .accordion li:target > .sub-menu { display: block; } |
Проодолжение:
<ul class="accordion"> <li id="one" class="files"> <a style="padding:0 0 0 10px" href="#one" class="">Курорт Белокуриха</a> <ul class="sub-menu"> <li><a style="padding:0 0 0 10px" href="http://piligrim22.ru/category/sanatorii/">Санатории Белокурихи</a></li> <li><a style="padding:0 0 0 10px" href="http://piligrim22.ru/category/pensione/">Пансионаты Белокурихи</a></li> <li><a style="padding:0 0 0 10px" href="http://piligrim22.ru/category/hotel/">Отели и гостиницы</a></li> <li><a style="padding:0 0 0 10px" href="http://piligrim22.ru/kursovki/">Курсовки в Белокуриху</a></li> <li><a style="padding:0 0 0 10px" href="http://piligrim22.ru/category/apartments/">Квартиры, коттеджи</a></li> <li><a style="padding:0 0 0 10px" href="http://piligrim22.ru/prices/">Белокуриха цены</a></li> <li><a style="padding:0 0 0 10px" href="http://piligrim22.ru/reviews/">Отзывы о курорте</a></li> <li><a style="padding:0 0 0 10px" href="http://piligrim22.ru/actions/">Спецпредложения, акции</a></li> <li><a style="padding:0 0 0 10px" href="http://piligrim22.ru/stati/">Статьи</a></li> </ul> </li> <li id="two" class="mail"> <a style="padding:0 0 0 10px" href="#two" class="">Лечение в Белокурихе</a> <ul class="sub-menu"> <li><a style="padding:0 0 0 10px" href="http://piligrim22.ru/lechenie-v-belokurihe/">Лечение</a></li> <li><a style="line-height:18px; padding:5px 0 7px 10px" href="http://piligrim22.ru/bolezni-serdechno-sosudistoy-sistemy/">Болезни сердечно-сосудистой системы</a></li> <li><a style="padding:0 0 0 10px" href="http://piligrim22.ru/bolezni-nervnoy-sistemy/">Болезни нервной системы</a></li> <li><a style="line-height:18px; padding:5px 0 7px 10px" href="http://piligrim22.ru/bolezni-endokrinnoy-sistemy/">Болезни эндокринной системы, расстройства питания и нарушения обмена веществ</a></li> <li><a style="line-height:18px; padding:5px 0 7px 10px" href="http://piligrim22.ru/bolezni-kostno-myishechnoy-i-soedinitel/">Болезни костно-мышечной и соединительной ткани</a></li> <li><a style="line-height:18px; padding:5px 0 7px 10px" href="http://piligrim22.ru/zabolevaniya-zhenskih-polovyih-organov/">Заболевания женских половых органов</a></li> <li><a style="padding:0 0 0 10px" href="http://piligrim22.ru/bolezni-kozhi-i-podkozhnoy-kletchatki/">Болезни кожи и подкожной клетчатки</a></li> <li><a style="padding:0 0 0 10px" href="http://piligrim22.ru/zabolevaniya-organov-dyihaniya/">Заболевания органов дыхания</a></li> <li><a style="padding:0 0 0 10px" href="http://piligrim22.ru/zabolevaniya-mochepolovoy-sistemyi/">Заболевания мочеполовой системы</a></li> <li><a style="padding:0 0 0 10px" href="http://piligrim22.ru/zabolevaniya-organov-pishhevareniya/">Заболевания органов пищеварения</a></li> <li><a style="padding:0 0 0 10px" href="http://piligrim22.ru/otzyivyi-o-lechenii-v-belokurihe/">Отзывы о лечении в Белокурихе</a></li> <li><a style="padding:0 0 0 10px" href="http://piligrim22.ru/category/stati-o-lechenii/">Статьи о лечении</a></li> </ul> </li> <li id="three" class="cloud"> <a style="padding:0 0 0 10px" href="#three" class="">Инфраструктура</a> <ul class="sub-menu"> <li><a style="padding:0 0 0 10px" href="http://piligrim22.ru/kak-dobratcya-belokuriha/">Как добраться до Белокурихи</a></li> <li><a style="padding:0 0 0 10px" href="http://piligrim22.ru/banks/">Банки</a></li> <li><a style="padding:0 0 0 10px" href="http://piligrim22.ru/category/akvaparki/">Аквапарки</a></li> <li><a style="padding:0 0 0 10px" href="http://piligrim22.ru/category/restaurant/">Рестораны</a></li> <li><a style="padding:0 0 0 10px" href="http://piligrim22.ru/category/cafe/">Кафе, кофейни</a></li> <li><a style="padding:0 0 0 10px" href="http://piligrim22.ru/category/nochnyie-klubyi/">Ночные клубы</a></li> <li><a style="padding:0 0 0 10px" href="http://piligrim22.ru/aviakassa-avtovokzal/">Авиакасса, автовокзал</a></li> </ul> </li> <li id="four" class="sign"> <a style="padding:0 0 0 10px" href="#four" class="">Отдых и развлечения</a> <ul class="sub-menu"> <li><a style="padding:0 0 0 10px" href="http://piligrim22.ru/category/excursion/">Экскурсии</a></li> <li><a style="padding:0 0 0 10px" href="http://piligrim22.ru/poletyi-na-vertoletah/">Полеты на вертолетах</a></li> <li><a style="padding:0 0 0 10px" href="http://piligrim22.ru/maralniki/">Маральники</a></li> <li><a style="padding:0 0 0 10px" href="http://piligrim22.ru/category/museum/">Музеи</a></li> <li><a style="padding:0 0 0 10px" href="http://piligrim22.ru/category/church/">Церкви</a></li> <li><a style="padding:0 0 0 10px" href="http://piligrim22.ru/gornolyizhnyie-trassyi/">Горнолыжные трассы</a></li> <li><a style="padding:0 0 0 10px" href="http://piligrim22.ru/tourist-attractions/">Достопримечательности</a></li> </ul> </li> </ul> <ul class="accord"> <li style="margin-top:15px" id="five" class="altai"> <a style="padding:0 0 0 10px" href="#five" class="">Горный Алтай</a> <ul class="sub-menu"> <li><a style="padding:0 0 0 10px" href="#">Телецкое озеро</a></li> <li><a style="padding:0 0 0 10px" href="#">Чемал и берег Катуни</a></li> <li><a style="padding:0 0 0 10px" href="#">Отдых в районе о.Ая</a></li> <li><a style="padding:0 0 0 10px" href="#">Бирюзовая Катунь</a></li> <li><a style="padding:0 0 0 10px" href="#">Туристические базы горного Алтая</a></li> <li><a style="padding:0 0 0 10px" href="#">Страховые программы</a></li> <li><a style="padding:0 0 0 10px" href="#">Памятка туристу</a></li> </ul> </li> </ul> |
Часовой пояс GMT +3, время: 05:50. |