Два года спустя, и у меня такое же желание ... использовать вложенный аккордеон Adi Palaz, но мой собственный стиль и специфическое действие развернуть / свернуть все кнопки.Я, наконец, заставил его работать так, как мне хотелось, хотя я, по общему признанию, программист jquery уровня новичка.Вот мои ключевые уроки:
- Я начал с примера nested_accordion_demo5.html с примера # acc1.Я вообще не использовал expand.js, я так и не смог заставить его работать.
- Я изменил настройки по умолчанию в моем demo5.html, добавив obj: "div".
$("#acc1").accordion({
obj: "div",
el: ".h",
head: "h4, h5",
next: "div",
iconTrigger: true
});
- Затем я добавил div с class = "accordion" вокруг всей структуры ul и удалил класс аккордеона из ul.
- Iсделал две свои собственные ссылки на развёртывание / сворачивание и поместил их в div, но перед ul.Позже мне стало интересно, и я добавил стили, чтобы они выглядели как кнопки, но сначала я заставил их работать.
<a href="#" class="ExpandAll">[Expand All]</a> <a href="#" class="CollapseAll">[Collapse All]</a>
- Затем я добавил два новых отдельных обработчика событий в jquery.nestedAccordion.js, используя фрагменты из того, который обрабатывает события a.trigger.Я разместил их сразу после существующего обработчика событий.Вот мой новый CollapseAll:
$(Obj).delegate('a.CollapseAll', ev, function(ev) {
$( o.obj + o.objClass ).find('a.trigger').each(function() {
var $thislink = $(this), $thisWrapper = $thislink.closest(o.wrapper), $nextEl = $thisWrapper.find('> ' + o.next);
if (($nextEl).length && $thislink.data('state') && (o.collapsible)) {
$thislink.removeClass('open');
$nextEl.filter(':visible')[o.hideMethod](o.hideSpeed, function() {$thislink.data('state', 0);});
}
});
});
- Затем я создал второй обработчик событий, который выполняет ExpandAll.
Я знаю, что это может быть гораздо более эффективным, ноЯ взволнован, по крайней мере, чтобы это работало, учитывая мой уровень квалификации!