* @fires AccordionMenu#down
*/
down($target) {
- var _this = this;
-
if(!this.options.multiOpen) {
this.up(this.$element.find('.is-active').not($target.parentsUntil(this.$element).add($target)));
}
- $target.addClass('is-active').attr({'aria-hidden': false});
+ $target
+ .addClass('is-active')
+ .attr({ 'aria-hidden': false });
if(this.options.submenuToggle) {
$target.prev('.submenu-toggle').attr({'aria-expanded': true});
$target.parent('.is-accordion-submenu-parent').attr({'aria-expanded': true});
}
- $target.slideDown(_this.options.slideSpeed, function () {
+ $target.slideDown(this.options.slideSpeed, () => {
/**
* Fires when the menu is done opening.
* @event AccordionMenu#down
*/
- _this.$element.trigger('down.zf.accordionMenu', [$target]);
+ this.$element.trigger('down.zf.accordionMenu', [$target]);
});
}
* @fires AccordionMenu#up
*/
up($target) {
- var _this = this;
- $target.slideUp(_this.options.slideSpeed, function () {
- /**
- * Fires when the menu is done collapsing up.
- * @event AccordionMenu#up
- */
- _this.$element.trigger('up.zf.accordionMenu', [$target]);
- });
+ const $submenus = $target.find('[data-submenu]');
+ const $allmenus = $target.add($submenus);
- var $menus = $target.find('[data-submenu]').slideUp(0).addBack().removeClass('is-active').attr('aria-hidden', true);
+ $submenus.slideUp(0);
+ $allmenus
+ .removeClass('is-active')
+ .attr('aria-hidden', true);
if(this.options.submenuToggle) {
- $menus.prev('.submenu-toggle').attr('aria-expanded', false);
+ $allmenus.prev('.submenu-toggle').attr('aria-expanded', false);
}
else {
- $menus.parent('.is-accordion-submenu-parent').attr('aria-expanded', false);
+ $allmenus.parent('.is-accordion-submenu-parent').attr('aria-expanded', false);
}
+
+ $target.slideUp(this.options.slideSpeed, () => {
+ /**
+ * Fires when the menu is done collapsing up.
+ * @event AccordionMenu#up
+ */
+ this.$element.trigger('up.zf.accordionMenu', [$target]);
+ });
}
/**