1 (function( $, undefined ) {
3 $.widget( "mobile.page", $.mobile.widget, {
7 keepNativeDefault: ":jqmData(role='none'), :jqmData(role='nojs')"
14 // if false is returned by the callbacks do not create the page
15 if ( self._trigger( "beforecreate" ) === false ) {
20 .addClass( "ui-page ui-body-" + self.options.theme )
21 .bind( "pagebeforehide", function() {
22 self.removeContainerBackground();
24 .bind( "pagebeforeshow", function() {
25 self.setContainerBackground();
31 $( this.element ).children( ".ui-content" ).trigger("updatelayout", ["external"]);
34 /* GUI Builder only : redesign page when user drag&drop header, footer */
35 setToolbar: function () {
36 $( this.element ).trigger( "pagebeforeshow" );
39 removeContainerBackground: function() {
40 $.mobile.pageContainer.removeClass( "ui-overlay-" + $.mobile.getInheritedTheme( this.element.parent() ) );
43 // set the page container background to the page theme
44 setContainerBackground: function( theme ) {
45 if ( this.options.theme ) {
46 $.mobile.pageContainer.addClass( "ui-overlay-" + ( theme || this.options.theme ) );
50 addBackBtn : function ( target ) {
51 var $dest = $( ".ui-page-active .ui-footer" );
53 if ( target == "header" ) {
54 $dest = $( ".ui-page-active .ui-header" );
56 backBtn = $( "<a href='#' class='ui-btn-back' data-" + $.mobile.ns + "rel='back'></a>" )
57 .buttonMarkup( {icon: "header-back-btn", theme : "s"} );
58 if ( !$dest.find( ".ui-btn-back").length ) {
59 backBtn.prependTo( $dest );
63 keepNativeSelector: function() {
64 var options = this.options,
65 keepNativeDefined = options.keepNative && $.trim( options.keepNative );
67 if ( keepNativeDefined && options.keepNative !== options.keepNativeDefault ) {
68 return [options.keepNative, options.keepNativeDefault].join( ", " );
71 return options.keepNativeDefault;