2 (function ($, window
, document
, undefined) {
5 Foundation
.libs
.accordion
= {
11 content_class
: 'content',
12 active_class
: 'active',
15 callback: function () {
19 init: function (scope
, method
, options
) {
20 this.bindings(method
, options
);
27 .off('.fndtn.accordion')
28 .on('click.fndtn.accordion', '[' + this.attr_name() + '] > .accordion-navigation > a', function (e
) {
29 var accordion
= S(this).closest('[' + self
.attr_name() + ']'),
30 groupSelector
= self
.attr_name() + '=' + accordion
.attr(self
.attr_name()),
31 settings
= accordion
.data(self
.attr_name(true) + '-init') || self
.settings
,
32 target
= S('#' + this.href
.split('#')[1]),
33 aunts
= $('> .accordion-navigation', accordion
),
34 siblings
= aunts
.children('.' + settings
.content_class
),
35 active_content
= siblings
.filter('.' + settings
.active_class
);
39 if (accordion
.attr(self
.attr_name())) {
40 siblings
= siblings
.add('[' + groupSelector
+ '] dd > ' + '.' + settings
.content_class
);
41 aunts
= aunts
.add('[' + groupSelector
+ '] .accordion-navigation');
44 if (settings
.toggleable
&& target
.is(active_content
)) {
45 target
.parent('.accordion-navigation').toggleClass(settings
.active_class
, false);
46 target
.toggleClass(settings
.active_class
, false);
47 settings
.callback(target
);
48 target
.triggerHandler('toggled', [accordion
]);
49 accordion
.triggerHandler('toggled', [target
]);
53 if (!settings
.multi_expand
) {
54 siblings
.removeClass(settings
.active_class
);
55 aunts
.removeClass(settings
.active_class
);
58 target
.addClass(settings
.active_class
).parent().addClass(settings
.active_class
);
59 settings
.callback(target
);
60 target
.triggerHandler('toggled', [accordion
]);
61 accordion
.triggerHandler('toggled', [target
]);
71 }(jQuery
, window
, window
.document
));