//>>excludeStart("jqmBuildExclude", pragmas.jqmBuildExclude); //>>description: For creating grouped collapsible content areas. //>>label: Collapsible Sets define( [ "jquery", "./jquery.mobile.widget", "./jquery.mobile.collapsible" ], function( $ ) { //>>excludeEnd("jqmBuildExclude"); (function( $, undefined ) { $.widget( "mobile.collapsibleset", $.mobile.widget, { options: { initSelector: ":jqmData(role='collapsible-set')" }, _create: function() { var $el = this.element.addClass( "ui-collapsible-set" ), o = this.options, collapsiblesInSet = $el.children( ":jqmData(role='collapsible')" ); // Inherit the theme from collapsible-set if ( !o.theme ) { o.theme = $el.jqmData( "theme" ); } // Inherit the content-theme from collapsible-set if ( !o.contentTheme ) { o.contentTheme = $el.jqmData( "content-theme" ); } // Initialize the collapsible set if it's not already initialized if ( !$el.jqmData( "collapsiblebound" ) ) { $el .jqmData( "collapsiblebound", true ) .bind( "expand collapse", function( event ) { var isCollapse = ( event.type === "collapse" ), collapsible = $( event.target ).closest( ".ui-collapsible" ), widget = collapsible.data( "collapsible" ), contentTheme = widget.options.contentTheme; if ( contentTheme && collapsible.jqmData( "collapsible-last" ) ) { collapsible.find( widget.options.heading ).first() .find( "a" ).first() .add( ".ui-btn-inner" ) .toggleClass( "ui-corner-bottom", isCollapse ); collapsible.find( ".ui-collapsible-content" ).toggleClass( "ui-corner-bottom", !isCollapse ); } }) .bind( "expand", function( event ) { $( event.target ) .closest( ".ui-collapsible" ) .siblings( ".ui-collapsible" ) .trigger( "collapse" ); }); // clean up borders collapsiblesInSet.each( function() { $( this ).find( $.mobile.collapsible.prototype.options.heading ) .find( "a" ).first() .add( ".ui-btn-inner" ) .removeClass( "ui-corner-top ui-corner-bottom" ); }); collapsiblesInSet.first() .find( "a" ) .first() .addClass( "ui-corner-top" ) .find( ".ui-btn-inner" ) .addClass( "ui-corner-top" ); collapsiblesInSet.last() .jqmData( "collapsible-last", true ) .find( "a" ) .first() .addClass( "ui-corner-bottom" ) .find( ".ui-btn-inner" ) .addClass( "ui-corner-bottom" ); } } }); //auto self-init widgets $( document ).bind( "pagecreate create", function( e ){ $( $.mobile.collapsibleset.prototype.options.initSelector, e.target ).collapsibleset(); }); })( jQuery ); //>>excludeStart("jqmBuildExclude", pragmas.jqmBuildExclude); }); //>>excludeEnd("jqmBuildExclude");