Team:StuyGem NYC/foundation.accordion.js

From 2014hs.igem.org

(function ($, window, document, undefined) {
 'use strict';
 Foundation.libs.accordion = {
   name : 'accordion',
   version : '5.2.2',
   settings : {
     active_class: 'active',
     multi_expand: false,
     toggleable: true
   },
   init : function (scope, method, options) {
     this.bindings(method, options);
   },
   events : function () {
     var self = this;
     var S = this.S;
     S(this.scope)
     .off('.fndtn.accordion')
     .on('click.fndtn.accordion', '[' + this.attr_name() + '] dd > a', function (e) {
       var accordion = S(this).closest('[' + self.attr_name() + ']'),
           target = S('#' + this.href.split('#')[1]),
           siblings = S('dd > .content', accordion),
           aunts = $('dd', accordion),
           settings = accordion.data(self.attr_name(true) + '-init'),
           active_content = S('dd > .content.' + settings.active_class, accordion),
           active_parent = S('dd.' + settings.active_class, accordion);
       e.preventDefault();
       if (! S(this).closest('dl').is(accordion)) { return; }
       if (settings.toggleable && target.is(active_content)) {
         active_parent.toggleClass(settings.active_class, false);
         return target.toggleClass(settings.active_class, false);
       }
       if (!settings.multi_expand) {
         siblings.removeClass(settings.active_class);
         aunts.removeClass(settings.active_class);
       }
       target.addClass(settings.active_class).parent().addClass(settings.active_class);
     });
   },
   off : function () {},
   reflow : function () {}
 };

}(jQuery, this, this.document));