У меня есть ccordion menu, и у каждого заголовка меню есть маленькая стрелка img, которая меняется, когда меню скользит вниз и вверх.
Это код на данный момент:
$(document).ready(function() {
$("div.menu_body").hide();
$("#menuheader div.menu_head div.detailsPanel").toggle(function() {
$(this).addClass("detailsPanelSelected").parent(this).next("div.menu_body").slideToggle(300).siblings("div.menu_body").slideUp("slow");
},
function() {
$(this).removeClass("detailsPanelSelected").parent(this).next("div.menu_body").slideUp("slow");
}
);
Это прекрасно работает, когда я переключаю один элемент меню за раз.
Но скажем, я раскрываю один пункт меню и нажимаю на другой заголовок меню. Что происходит, так это то, что первый элемент меню перемещается вверх, а вновь щелкающий - вниз, как и ожидалось. Но стрелка GIF не меняется обратно в меню, которое скользит вверх. Это происходит потому, что функция переключения все еще находится в первом состоянии, и если я щелкну по нему еще раз, удалив класс «detailsPanelSelected», все, что произойдет, это то, что изображение вернется обратно. Глядя на код, это ожидаемо.
Итак, мой вопрос: как мне сделать так, чтобы пункты меню "detailsPanelSelected" удалялись при нажатии на другой заголовок меню? Можно ли как-то сбросить функцию ожидающего переключения?