[more] Меню-аккордион, структура:
<ul id="accordion" class="accordion">
<li>
<div class="link"><div id="text">SomeText</div></div>
<ul class="submenu">
<li><a href="#">Text</a></li>
<li><a href="#">Text</a></li>
<li><a href="#">Text</a></li>
<li><a href="#">Text</a></li>
</ul>
</li>
<li>
<div class="link"><div id="text">SomeText</div></div>
<ul class="submenu">
<li><a href="#">Text</a></li>
<li><a href="#">Text</a></li>
<li><a href="#">Text</a></li>
</ul>
</li>
</ul>
Сам скрипт:
$(function () {
$("li").click(function(b) {
b.stopPropagation();
var a = $(this);
a.parent().find("li ul:visible").slideUp(200).removeClass('open');
a.children("ul").is(":hidden") && a.children("ul").slideDown(200, function() {
$("body, html").stop(!0, !0).animate({
scrollTop: a.offset().top - 50
}, 800)
a.toggleClass('open');
})
})
});
Должно быть так: клик на пункте меню, сам пункт меню скроллится вверх и выезжает подменю и у li меняются стили и этому же li присваивается класс "open", клик на тот же пункт меню или на другой, открытый li прячет свое подменю, класс "open" удаляется и стили возвращаются в первоначальному виду, а другой li открывается и все по новой. Но так не работает((( сам не особо шарю в JS, и голову уже сломал, не могу найти косяк. Люди добрые, помогите! [/more]
<ul id="accordion" class="accordion">
<li>
<div class="link"><div id="text">SomeText</div></div>
<ul class="submenu">
<li><a href="#">Text</a></li>
<li><a href="#">Text</a></li>
<li><a href="#">Text</a></li>
<li><a href="#">Text</a></li>
</ul>
</li>
<li>
<div class="link"><div id="text">SomeText</div></div>
<ul class="submenu">
<li><a href="#">Text</a></li>
<li><a href="#">Text</a></li>
<li><a href="#">Text</a></li>
</ul>
</li>
</ul>
Сам скрипт:
$(function () {
$("li").click(function(b) {
b.stopPropagation();
var a = $(this);
a.parent().find("li ul:visible").slideUp(200).removeClass('open');
a.children("ul").is(":hidden") && a.children("ul").slideDown(200, function() {
$("body, html").stop(!0, !0).animate({
scrollTop: a.offset().top - 50
}, 800)
a.toggleClass('open');
})
})
});
Должно быть так: клик на пункте меню, сам пункт меню скроллится вверх и выезжает подменю и у li меняются стили и этому же li присваивается класс "open", клик на тот же пункт меню или на другой, открытый li прячет свое подменю, класс "open" удаляется и стили возвращаются в первоначальному виду, а другой li открывается и все по новой. Но так не работает((( сам не особо шарю в JS, и голову уже сломал, не могу найти косяк. Люди добрые, помогите! [/more]