Skip to content

Commit e07c40e

Browse files
author
scottjehl
committed
exposed automatic initialization selectors on most widgets that expose options through the widget factory. Option name is "initSelector"
1 parent 79d3aa6 commit e07c40e

12 files changed

+54
-21
lines changed

js/jquery.mobile.collapsible.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,10 @@
77
(function( $, undefined ) {
88

99
//auto self-init widgets
10+
var initSelector = ":jqmData(role='collapsible')";
11+
1012
$( document ).bind( "pagecreate create", function( e ){
11-
$( ":jqmData(role='collapsible')", e.target ).collapsible();
13+
$( initSelector, e.target ).collapsible();
1214
});
1315

1416
$.widget( "mobile.collapsible", $.mobile.widget, {
@@ -18,7 +20,8 @@ $.widget( "mobile.collapsible", $.mobile.widget, {
1820
collapsed: false,
1921
heading: ">:header,>legend",
2022
theme: null,
21-
iconTheme: "d"
23+
iconTheme: "d",
24+
initSelector: initSelector
2225
},
2326
_create: function() {
2427

js/jquery.mobile.controlGroup.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,10 @@
77
(function( $, undefined ) {
88

99
//auto self-init widgets
10+
var initSelector = ":jqmData(role='controlgroup')";
11+
1012
$( document ).bind( "pagecreate create", function( e ){
11-
$( ":jqmData(role='controlgroup')", e.target ).controlgroup({ excludeInvisible: false });
13+
$( initSelector, e.target ).controlgroup({ excludeInvisible: false });
1214
});
1315

1416
$.fn.controlgroup = function( options ) {

js/jquery.mobile.dialog.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,17 @@
77
(function( $, window, undefined ) {
88

99
//auto self-init widgets
10-
$( ":jqmData(role='dialog')" ).live( "pagecreate", function(){
10+
var initSelector = ":jqmData(role='dialog')";
11+
12+
$( initSelector ).live( "pagecreate", function(){
1113
$( this ).dialog();
1214
});
1315

1416
$.widget( "mobile.dialog", $.mobile.widget, {
1517
options: {
1618
closeBtnText : "Close",
17-
theme : "a"
19+
theme : "a",
20+
initSelector : initSelector
1821
},
1922
_create: function() {
2023
var $el = this.element,

js/jquery.mobile.fieldContain.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,10 @@
88
(function( $, undefined ) {
99

1010
//auto self-init widgets
11+
var initSelector = ":jqmData(role='fieldcontain')";
12+
1113
$( document ).bind( "pagecreate create", function( e ){
12-
$( ":jqmData(role='fieldcontain')", e.target ).fieldcontain();
14+
$( initSelector, e.target ).fieldcontain();
1315
});
1416

1517
$.fn.fieldcontain = function( options ) {

js/jquery.mobile.fixHeaderFooter.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,11 @@
88
(function( $, undefined ) {
99

1010
//auto self-init widgets
11+
var initSelector = ":jqmData(position='fixed')";
12+
1113
$( document ).bind( "pagecreate create", function( e ){
1214

13-
if( $( ":jqmData(position='fixed')", e.target ).length ){
15+
if( $( initSelector, e.target ).length ){
1416
$( e.target ).each(function(){
1517

1618
if ( !$.support.scrollTop ) {

js/jquery.mobile.forms.button.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,10 @@
88
(function( $, undefined ) {
99

1010
//auto self-init widgets
11+
var initSelector = "button, [type='button'], [type='submit'], [type='reset'], [type='image']";
12+
1113
$( document ).bind( "pagecreate create", function( e ){
12-
$( "button, [type='button'], [type='submit'], [type='reset'], [type='image']", e.target )
14+
$( initSelector, e.target )
1315
.not( ":jqmData(role='none'), :jqmData(role='nojs')" )
1416
.button();
1517
});
@@ -22,7 +24,8 @@ $.widget( "mobile.button", $.mobile.widget, {
2224
inline: null,
2325
corners: true,
2426
shadow: true,
25-
iconshadow: true
27+
iconshadow: true,
28+
initSelector: initSelector
2629
},
2730
_create: function() {
2831
var $el = this.element,

js/jquery.mobile.forms.checkboxradio.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,18 @@
88
(function( $, undefined ) {
99

1010
//auto self-init widgets
11+
var initSelector = "input[type='checkbox'],input[type='radio']";
12+
1113
$( document ).bind( "pagecreate create", function( e ){
12-
$( "input[type='checkbox'],input[type='radio']", e.target )
14+
$( $.mobile.checkboxradio.prototype.options.initSelector, e.target )
1315
.not( ":jqmData(role='none'), :jqmData(role='nojs')" )
1416
.checkboxradio();
1517
});
1618

1719
$.widget( "mobile.checkboxradio", $.mobile.widget, {
1820
options: {
19-
theme: null
21+
theme: null,
22+
initSelector: initSelector
2023
},
2124
_create: function() {
2225
var self = this,

js/jquery.mobile.forms.select.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,10 @@
88
(function( $, undefined ) {
99

1010
//auto self-init widgets
11+
var initSelector = "select:not(:jqmData(role='slider'))";
12+
1113
$( document ).bind( "pagecreate create", function( e ){
12-
$( "select:not(:jqmData(role='slider'))", e.target )
14+
$( initSelector, e.target )
1315
.not( ":jqmData(role='none'), :jqmData(role='nojs')" )
1416
.selectmenu();
1517
});
@@ -28,7 +30,8 @@ $.widget( "mobile.selectmenu", $.mobile.widget, {
2830
overlayTheme: "a",
2931
hidePlaceholderMenuItems: true,
3032
closeText: "Close",
31-
nativeMenu: true
33+
nativeMenu: true,
34+
initSelector: initSelector
3235
},
3336
_create: function() {
3437

js/jquery.mobile.forms.slider.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,12 @@
88
( function( $, undefined ) {
99

1010
//auto self-init widgets
11+
var initSelector = "input[type='range'], :jqmData(type='range'), :jqmData(role='slider')";
12+
1113
$( document ).bind( "pagecreate create", function( e ){
1214

1315
//now self-init
14-
$( "input[type='range'], :jqmData(type='range'), :jqmData(role='slider')", e.target )
16+
$( initSelector, e.target )
1517
.not( ":jqmData(role='none'), :jqmData(role='nojs')" )
1618
.slider();
1719

@@ -21,7 +23,8 @@ $.widget( "mobile.slider", $.mobile.widget, {
2123
options: {
2224
theme: null,
2325
trackTheme: null,
24-
disabled: false
26+
disabled: false,
27+
initSelector: initSelector
2528
},
2629

2730
_create: function() {

js/jquery.mobile.forms.textinput.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,18 @@
88
(function( $, undefined ) {
99

1010
//auto self-init widgets
11+
var initSelector = "input[type='text'], input[type='search'], :jqmData(type='search'), input[type='number'], :jqmData(type='number'), input[type='password'], input[type='email'], input[type='url'], input[type='tel'], textarea";
12+
1113
$( document ).bind( "pagecreate create", function( e ){
12-
$( "input[type='text'], input[type='search'], :jqmData(type='search'), input[type='number'], :jqmData(type='number'), input[type='password'], input[type='email'], input[type='url'], input[type='tel'], textarea", e.target )
14+
$( initSelector, e.target )
1315
.not( ":jqmData(role='none'), :jqmData(role='nojs')" )
1416
.textinput();
1517
});
1618

1719
$.widget( "mobile.textinput", $.mobile.widget, {
1820
options: {
19-
theme: null
21+
theme: null,
22+
initSelector: initSelector
2023
},
2124

2225
_create: function() {

0 commit comments

Comments
 (0)