app/assets/javascripts/materialize/collapsible.js in materialize-sass-0.99.0 vs app/assets/javascripts/materialize/collapsible.js in materialize-sass-0.100.0
- old
+ new
@@ -1,19 +1,18 @@
(function ($) {
- $.fn.collapsible = function(options, methodParam) {
+ $.fn.collapsible = function (options, methodParam) {
var defaults = {
accordion: undefined,
onOpen: undefined,
onClose: undefined
};
var methodName = options;
options = $.extend(defaults, options);
+ return this.each(function () {
- return this.each(function() {
-
var $this = $(this);
var $panel_headers = $(this).find('> li > .collapsible-header');
var collapsible_type = $this.data("collapsible");
@@ -25,79 +24,84 @@
// Accordion Open
function accordionOpen(object) {
$panel_headers = $this.find('> li > .collapsible-header');
if (object.hasClass('active')) {
object.parent().addClass('active');
- }
- else {
+ } else {
object.parent().removeClass('active');
}
- if (object.parent().hasClass('active')){
- object.siblings('.collapsible-body').stop(true,false).slideDown({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '');}});
+ if (object.parent().hasClass('active')) {
+ object.siblings('.collapsible-body').stop(true, false).slideDown({ duration: 350, easing: "easeOutQuart", queue: false, complete: function () {
+ $(this).css('height', '');
+ } });
+ } else {
+ object.siblings('.collapsible-body').stop(true, false).slideUp({ duration: 350, easing: "easeOutQuart", queue: false, complete: function () {
+ $(this).css('height', '');
+ } });
}
- else{
- object.siblings('.collapsible-body').stop(true,false).slideUp({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '');}});
- }
$panel_headers.not(object).removeClass('active').parent().removeClass('active');
// Close previously open accordion elements.
- $panel_headers.not(object).parent().children('.collapsible-body').stop(true,false).each(function() {
+ $panel_headers.not(object).parent().children('.collapsible-body').stop(true, false).each(function () {
if ($(this).is(':visible')) {
$(this).slideUp({
duration: 350,
easing: "easeOutQuart",
queue: false,
- complete:
- function() {
- $(this).css('height', '');
- execCallbacks($(this).siblings('.collapsible-header'));
- }
+ complete: function () {
+ $(this).css('height', '');
+ execCallbacks($(this).siblings('.collapsible-header'));
+ }
});
}
});
}
// Expandable Open
function expandableOpen(object) {
if (object.hasClass('active')) {
object.parent().addClass('active');
- }
- else {
+ } else {
object.parent().removeClass('active');
}
- if (object.parent().hasClass('active')){
- object.siblings('.collapsible-body').stop(true,false).slideDown({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '');}});
+ if (object.parent().hasClass('active')) {
+ object.siblings('.collapsible-body').stop(true, false).slideDown({ duration: 350, easing: "easeOutQuart", queue: false, complete: function () {
+ $(this).css('height', '');
+ } });
+ } else {
+ object.siblings('.collapsible-body').stop(true, false).slideUp({ duration: 350, easing: "easeOutQuart", queue: false, complete: function () {
+ $(this).css('height', '');
+ } });
}
- else {
- object.siblings('.collapsible-body').stop(true,false).slideUp({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '');}});
- }
}
// Open collapsible. object: .collapsible-header
function collapsibleOpen(object, noToggle) {
if (!noToggle) {
object.toggleClass('active');
}
- if (options.accordion || collapsible_type === "accordion" || collapsible_type === undefined) { // Handle Accordion
+ if (options.accordion || collapsible_type === "accordion" || collapsible_type === undefined) {
+ // Handle Accordion
accordionOpen(object);
- } else { // Handle Expandables
+ } else {
+ // Handle Expandables
expandableOpen(object);
}
execCallbacks(object);
}
// Handle callbacks
function execCallbacks(object) {
if (object.hasClass('active')) {
- if (typeof(options.onOpen) === "function") {
+ if (typeof options.onOpen === "function") {
options.onOpen.call(this, object.parent());
}
} else {
- if (typeof(options.onClose) === "function") {
+ if (typeof options.onClose === "function") {
options.onClose.call(this, object.parent());
}
}
}
@@ -121,63 +125,54 @@
function getPanelHeader(object) {
return object.closest('li > .collapsible-header');
}
-
// Turn off any existing event handlers
function removeEventHandlers() {
$this.off('click.collapse', '> li > .collapsible-header');
}
/***** End Helper Functions *****/
-
// Methods
if (methodName === 'destroy') {
removeEventHandlers();
return;
- } else if (methodParam >= 0 &&
- methodParam < $panel_headers.length) {
+ } else if (methodParam >= 0 && methodParam < $panel_headers.length) {
var $curr_header = $panel_headers.eq(methodParam);
- if ($curr_header.length &&
- (methodName === 'open' ||
- (methodName === 'close' &&
- $curr_header.hasClass('active')))) {
+ if ($curr_header.length && (methodName === 'open' || methodName === 'close' && $curr_header.hasClass('active'))) {
collapsibleOpen($curr_header);
}
return;
}
-
removeEventHandlers();
-
// Add click handler to only direct collapsible header children
- $this.on('click.collapse', '> li > .collapsible-header', function(e) {
+ $this.on('click.collapse', '> li > .collapsible-header', function (e) {
var element = $(e.target);
if (isChildrenOfPanelHeader(element)) {
element = getPanelHeader(element);
}
collapsibleOpen(element);
});
-
// Open first active
- if (options.accordion || collapsible_type === "accordion" || collapsible_type === undefined) { // Handle Accordion
+ if (options.accordion || collapsible_type === "accordion" || collapsible_type === undefined) {
+ // Handle Accordion
collapsibleOpen($panel_headers.filter('.active').first(), true);
-
- } else { // Handle Expandables
- $panel_headers.filter('.active').each(function() {
+ } else {
+ // Handle Expandables
+ $panel_headers.filter('.active').each(function () {
collapsibleOpen($(this), true);
});
}
-
});
};
- $(document).on('ready turbolinks:load', function(){
+ $(document).on('ready turbolinks:load', function () {
$('.collapsible').collapsible();
});
-}( jQuery ));
+})(jQuery);