Это просто действительно новый вопрос о jQuery, но я просто использую его для создания простого аккордеонного меню. Выход HTML выглядит следующим образом:
<ul id="nav-sub">
<li class="sub-level-0"><a href="#">Menu Item One</a></li>
<li class="parent-here last sub-level-0"><a href="#">Menu Item Two</a>
<ul>
<li class="here sub-level-1"><a href="#">Sub Menu Item One</a></li>
<li class="last sub-level-1"><a href="#">Sub Menu Item Two</a></li>
</ul>
</li>
А jQuery, который у меня сейчас есть:
$(document).ready(function() {
// Show the children of the first product on page load but leave the others hidden
$("ul#nav-sub li.parent-here ul").show();
// Then attach a visibility toggle to each of the parents
if ( $("ul#nav-sub li.sub-level-0 ul").size > 0 ) {
$("ul#nav-sub li.sub-level-0 > a").click(function(){
$(this).next().slideToggle("slow");
return false; //Prevent the browser jump to the link anchor
});
}
});
Это самое близкое, что я могу заставить его работать полностью, но единственное, что не работает, это анимация переключения. Вместо медленного перехода он просто прыгает прямо при открытии.
То, что я в основном хочу, это получить эффект медленного перехода, но ТАКЖЕ возвращать значение false (предотвращать действие браузера по умолчанию после привязки ссылки), если у элемента меню есть дочерние элементы (подсписок - как показано выше в пункте меню Два). Мне нужен первый пункт меню, чтобы вернуть true и перейти прямо к этой странице.
Спасибо