Skip to content

Commit a221e8a

Browse files
committed
refactor: simplify AccordionMenu "up" and "down" methods
1 parent 5b105ac commit a221e8a

File tree

1 file changed

+21
-16
lines changed

1 file changed

+21
-16
lines changed

js/foundation.accordionMenu.js

+21-16
Original file line numberDiff line numberDiff line change
@@ -233,13 +233,13 @@ class AccordionMenu extends Plugin {
233233
* @fires AccordionMenu#down
234234
*/
235235
down($target) {
236-
var _this = this;
237-
238236
if(!this.options.multiOpen) {
239237
this.up(this.$element.find('.is-active').not($target.parentsUntil(this.$element).add($target)));
240238
}
241239

242-
$target.addClass('is-active').attr({'aria-hidden': false});
240+
$target
241+
.addClass('is-active')
242+
.attr({ 'aria-hidden': false });
243243

244244
if(this.options.submenuToggle) {
245245
$target.prev('.submenu-toggle').attr({'aria-expanded': true});
@@ -248,12 +248,12 @@ class AccordionMenu extends Plugin {
248248
$target.parent('.is-accordion-submenu-parent').attr({'aria-expanded': true});
249249
}
250250

251-
$target.slideDown(_this.options.slideSpeed, function () {
251+
$target.slideDown(this.options.slideSpeed, () => {
252252
/**
253253
* Fires when the menu is done opening.
254254
* @event AccordionMenu#down
255255
*/
256-
_this.$element.trigger('down.zf.accordionMenu', [$target]);
256+
this.$element.trigger('down.zf.accordionMenu', [$target]);
257257
});
258258
}
259259

@@ -263,23 +263,28 @@ class AccordionMenu extends Plugin {
263263
* @fires AccordionMenu#up
264264
*/
265265
up($target) {
266-
var _this = this;
267-
$target.slideUp(_this.options.slideSpeed, function () {
268-
/**
269-
* Fires when the menu is done collapsing up.
270-
* @event AccordionMenu#up
271-
*/
272-
_this.$element.trigger('up.zf.accordionMenu', [$target]);
273-
});
266+
const $submenus = $target.find('[data-submenu]');
267+
const $allmenus = $target.add($submenus);
274268

275-
var $menus = $target.find('[data-submenu]').slideUp(0).addBack().removeClass('is-active').attr('aria-hidden', true);
269+
$submenus.slideUp(0);
270+
$allmenus
271+
.removeClass('is-active')
272+
.attr('aria-hidden', true);
276273

277274
if(this.options.submenuToggle) {
278-
$menus.prev('.submenu-toggle').attr('aria-expanded', false);
275+
$allmenus.prev('.submenu-toggle').attr('aria-expanded', false);
279276
}
280277
else {
281-
$menus.parent('.is-accordion-submenu-parent').attr('aria-expanded', false);
278+
$allmenus.parent('.is-accordion-submenu-parent').attr('aria-expanded', false);
282279
}
280+
281+
$target.slideUp(this.options.slideSpeed, () => {
282+
/**
283+
* Fires when the menu is done collapsing up.
284+
* @event AccordionMenu#up
285+
*/
286+
this.$element.trigger('up.zf.accordionMenu', [$target]);
287+
});
283288
}
284289

285290
/**

0 commit comments

Comments
 (0)