$$plugins.define('accordion', ['domHelper'], function (element, options, $) { var animating = false, $header = $(element).find('.acc:not(.acc--disabled) .acc__header'), $content, $prevActiveAcc, $this, $accItem, singleOpen = options.singleOpen ? options.singleOpen : false; $header.on('click', function (e) { $this = $(this); $accItem = $this.parent('.acc'); $content = $this.next('.acc__content'); if (animating === true) { return; } animating = true; if ($accItem.is('.open')) { $content.slideUp(300, function () { $accItem.removeClass('open'); $content.removeAttr('style'); animating = false; }); } else { $content.slideDown(300, function () { $accItem.addClass('open'); $content.removeAttr('style'); animating = false; }); if (singleOpen) { $prevActiveAcc = $accItem.siblings('.acc.open'); if ($prevActiveAcc.length != 0) { $prevActiveAcc.find('.acc__content').slideUp(300, function () { $prevActiveAcc.removeClass('open'); $prevActiveAcc.find('.acc__content').removeAttr('style'); animating = false; }); } } } }); });