У меня есть меню аккордеона с фоном и цветом заголовка (вкладка меню), изменяющимся при наведении курсора и при нажатии. Мне также хотелось бы, чтобы это было так, когда эта вкладка меню открыта (т. Е. Изображение/цвет указывают, какое меню открыто). Прямо сейчас, как только курсор не находится над заголовком меню, фоновое изображение удаляется, а цвет возвращается в неактивное состояние. Все мои исследования на этом сайте и в других местах указывают на использование методов removeClass и addClass, но я не могу заставить это работать.меню аккордеона addclass не работает
JQuery:
$(document).ready(function(){
var panel = $("#accordian h3");
panel.click(function(){
//slide up all the link lists
$("#accordian ul ul").slideUp();
//slide down the link list below the h3 clicked, if it's closed
if(!$(this).next().is(":visible"))
$(this).next().slideDown();
panel.removeClass('active')
panel.addClass('active')
});
})
Соответствующий CSS (минус спецификации UL):
/*main menu heading style*/
#accordian h3 {
font-size: 12px;
line-height: 34px;
padding: 0px 0px 0px 5px;
cursor: pointer;
/*fallback for browsers not supporting gradients*/
background: #984e06;
background: linear-gradient(#984e06, #FF9600);
}
/*heading hover effect, active (as clicked) effect*/
#accordian h3:hover,
#accordian h3:active {
text-shadow: 0 0 2px rgba(0, 0, 0, 1.0);
background-repeat: no-repeat;
background-image: url(../Images/Logo.jpg);
background-size: 25px 25px;
background-position: 5px 4px; /*left center;*/
padding: 0px 35px;
background-color: #ffdf05; /*linear-gradient(#ffdf05, #FF9600);*/
}
Я провел часы, пытаясь найти решение. Правильны ли методы removeClass и addClass? И в правильном месте внутри кода? Я также попытался заменить эти две строки одной строкой, используя метод toggleClass, но это тоже не работает. Спасибо за вашу помощь.
Rev - спасибо, это близко, за исключением того, что цвет фона не возвращается к неактивному состоянию при нажатии следующей вкладки меню. Вкладка меню только возвращается к неактивному состоянию, когда он сам нажимается второй раз, чтобы закрыть вкладку. – Eric
Работает, за исключением исходной проблемы (открытая вкладка меню не отображается в активном состоянии. Http://jsfiddle.net/EricTroyer/tcg3f4ns/ – Eric
Я отредактировал код, сообщите мне, если у вас все получилось – user4571629