Das liegt daran das die Accordions nicht gruppiert werden. Wenn ich das richtig verstanden habe hast du 2 Accordion Gruppen und möchtest das jeweils das erste Element je Gruppe offen ist.
Du musst auf jeden fall dann dein moo_accordion template anpassen und den Artikel jeweils eine class accordiongroup geben.
Wenn du das Accordion Template wie folgt modifizierst sollte das gehen:
Code:
<script type="text/javascript">
/* <![CDATA[ */
(function($) {
window.addEvent('domready', function() {
$$('.accordiongroup').each(function(el) {
var accordion = new Accordion(el.getElements('.toggler'), el.getElements('.accordion'), {
opacity: false,
alwaysHide: true,
onActive: function(tog, el) {
el.setProperty('aria-hidden', 'false');
tog.addClass('active');
tog.getNext('div').fade('in');
tog.setProperty('aria-expanded', 'true');
return false;
},
onBackground: function(tog, el) {
el.setProperty('aria-hidden', 'true');
tog.removeClass('active');
tog.getNext('div').fade('out');
tog.setProperty('aria-expanded', 'false');
return false;
}
});
});
$$('div.toggler').each(function(el) {
el.setProperty('role', 'tab');
el.setProperty('tabindex', 0);
el.addEvents({
'keypress': function(event) {
if (event.code == 13) {
this.fireEvent('click');
}
},
'focus': function() {
this.addClass('hover');
},
'blur': function() {
this.removeClass('hover');
},
'mouseenter': function() {
this.addClass('hover');
},
'mouseleave': function() {
this.removeClass('hover');
}
});
});
$$('div.ce_accordion').each(function(el) {
el.setProperty('role', 'tablist');
});
$$('div.accordion').each(function(el) {
el.setProperty('role', 'tabpanel');
});
});
})(document.id);
/* ]]> */
</script>
Lesezeichen