<ul class="accordion-menu">
<li>
<a href="#" class="title">Explore Careers</a>
<ul>
<li><a href="#">Set Careers</a></li>
<li><a href="#">Salaries</a></li>
</ul>
</li>
<li class="active">
<a href="#" class="title">Self assessments</a>
<ul>
<li>
<a href="#">What is an assessment?</a>
</li>
<li>
<a href="#" class="clicked">Interest assessment</a>
</li>
<li><a href="#">Skills assessment</a></li>
<li><a href="#">Work values</a></li>
</ul>
</li>
<li>
<a href="#" class="title">Learn about careers</a>
<ul>
<li><a href="#">Licenses</a></li>
<li><a href="#">Professions</a></li>
</ul>
</li>
</ul>
Я добавил новый класс title
, чтобы определить заголовки аккордеона, чтобы избежать использования медленных селекторов дочерних элементов.
И теперь в вашем script
, добавьте
$(document).ready(function(){
$('.title').on('click',function(){
var $parent = $(this).parent();
var $siblings = $parent.siblings();
$siblings.removeClass('active').find('ul').slideUp('normal');
$parent.find('ul').slideDown('normal');
$parent.addClass('active');
});
});
Также в этом live страницы, которые вы совместно, они обновляя всю страницу, чтобы получить обновленное содержание. Я предлагаю вам использовать AJAX для получения обновленного контента, а затем обновить этот контейнер вместо обновления полной страницы. Это даст лучший пользовательский интерфейс, а также упростит отслеживание выбранного аккордеона без сохранения состояния между обновлениями страницы.
Вот обновленный fiddle раздвоенный с вашего с моими изменениями. Надеюсь, это поможет :)
Реализация детали в сторону, это похоже на кошмар UX. – pygeek
@pygeek Почему вопрос был отмечен как отрицательный. У меня есть требование для этого, и я обсуждаю возможности с форумом. Вы более чем можете предложить или оставить его. – Vani
Я не был тем, кто отметил вашу проблему как отрицательную. Вероятно, это было негативно, потому что на первый взгляд кажется, что вы просите кого-то сделать эту работу за вас. – pygeek