/* * widget factory extentions for mobile */ //>>excludeStart("jqmBuildExclude", pragmas.jqmBuildExclude); define( [ "jquery.ui.widget" ], function() { //>>excludeEnd("jqmBuildExclude"); (function( $, undefined ) { $.widget( "mobile.widget", { // decorate the parent _createWidget to trigger `widgetinit` for users // who wish to do post post `widgetcreate` alterations/additions // // TODO create a pull request for jquery ui to trigger this event // in the original _createWidget _createWidget: function() { $.Widget.prototype._createWidget.apply( this, arguments ); this._trigger( 'init' ); }, _getCreateOptions: function() { var elem = this.element, options = {}; $.each( this.options, function( option ) { var value = elem.jqmData( option.replace( /[A-Z]/g, function( c ) { return "-" + c.toLowerCase(); }) ); if ( value !== undefined ) { options[ option ] = value; } }); return options; }, enhanceWithin: function( target ) { // TODO remove dependency on the page widget for the keepNative. // Currently the keepNative value is defined on the page prototype so // the method is as well var page = $(target).closest(":jqmData(role='page')").data( "page" ), keepNative = (page && page.keepNativeSelector()) || ""; $( this.options.initSelector, target ).not( keepNative )[ this.widgetName ](); } }); })( jQuery ); //>>excludeStart("jqmBuildExclude", pragmas.jqmBuildExclude); }); //>>excludeEnd("jqmBuildExclude");