Skip to content

Commit c5f0eb3

Browse files
committed
moved internal haveParents from $.fn.closest to parentNode calls
1 parent 64a2e9e commit c5f0eb3

File tree

1 file changed

+22
-8
lines changed

1 file changed

+22
-8
lines changed

js/jquery.mobile.core.js

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -196,25 +196,39 @@ define( [ "jquery", "../external/requirejs/text!../version.txt", "./jquery.mobil
196196
},
197197

198198
enhanceable: function( $set ) {
199-
return this.haveParents( $set, ":jqmData(enhance='false')" );
199+
return this.haveParents( $set, "enhance" );
200200
},
201201

202202
hijackable: function( $set ) {
203-
return this.haveParents( $set, ":jqmData(ajax='false')" );
203+
return this.haveParents( $set, "ajax" );
204204
},
205205

206-
// TODO use parentNode traversal to speed things up
207-
haveParents: function( $set, selector ) {
206+
haveParents: function( $set, attr ) {
208207
if( !$.mobile.ignoreContentEnabled ){
209208
return $set;
210209
}
211210

212-
var count = $set.length, $newSet = $();
211+
var count = $set.length,
212+
$newSet = $(),
213+
e, $element, excluded;
213214

214-
for( var i = 0; i < count; i++ ) {
215-
var $element = $set.eq(i);
215+
for ( var i = 0; i < count; i++ ) {
216+
$element = $set.eq( i );
217+
excluded = false;
218+
e = $set[ i ];
216219

217-
if ( !$element.closest(selector).length ) {
220+
while ( e ) {
221+
var c = e.getAttribute ? e.getAttribute( "data-" + $.mobile.ns + attr ) : "";
222+
223+
if ( c === "false" ) {
224+
excluded = true;
225+
break;
226+
}
227+
228+
e = e.parentNode;
229+
}
230+
231+
if ( !excluded ) {
218232
$newSet = $newSet.add( $element );
219233
}
220234
}

0 commit comments

Comments
 (0)