Skip to content

Commit 903961e

Browse files
authored
Add files via upload
1 parent be048a0 commit 903961e

File tree

1 file changed

+40
-32
lines changed

1 file changed

+40
-32
lines changed

src/manipulation.js

Lines changed: 40 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -134,38 +134,46 @@ jQuery.extend( {
134134
},
135135

136136
cleanData: function( elems ) {
137-
var data, elem, type,
138-
special = jQuery.event.special,
139-
i = 0;
140-
141-
for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {
142-
if ( acceptData( elem ) ) {
143-
if ( ( data = elem[ dataPriv.expando ] ) ) {
144-
if ( data.events ) {
145-
for ( type in data.events ) {
146-
if ( special[ type ] ) {
147-
jQuery.event.remove( elem, type );
148-
149-
// This is a shortcut to avoid jQuery.event.remove's overhead
150-
} else {
151-
jQuery.removeEvent( elem, type, data.handle );
152-
}
153-
}
154-
}
155-
156-
// Support: Chrome <=35 - 45+
157-
// Assign undefined instead of using delete, see Data#remove
158-
elem[ dataPriv.expando ] = undefined;
159-
}
160-
if ( elem[ dataUser.expando ] ) {
161-
162-
// Support: Chrome <=35 - 45+
163-
// Assign undefined instead of using delete, see Data#remove
164-
elem[ dataUser.expando ] = undefined;
165-
}
166-
}
167-
}
168-
}
137+
var data, elem, type,
138+
special = jQuery.event.special,
139+
i = 0;
140+
141+
elems = jQuery.makeArray(elems);
142+
while ( i < elems.length ) {
143+
elem = elems[ i ];
144+
145+
if ( acceptData( elem ) ) {
146+
if ( ( data = elem[ dataPriv.expando ] ) ) {
147+
if ( data.events ) {
148+
for ( type in data.events ) {
149+
if ( special[ type ] ) {
150+
jQuery.event.remove( elem, type );
151+
152+
// This is a shortcut to avoid jQuery.event.remove's overhead
153+
} else {
154+
jQuery.removeEvent( elem, type, data.handle );
155+
}
156+
}
157+
}
158+
159+
// Support: Chrome <=35 - 45+
160+
// Assign undefined instead of using delete, see Data#remove
161+
elem[ dataPriv.expando ] = undefined;
162+
}
163+
if ( elem[ dataUser.expando ] ) {
164+
165+
// Support: Chrome <=35 - 45+
166+
// Assign undefined instead of using delete, see Data#remove
167+
elem[ dataUser.expando ] = undefined;
168+
}
169+
170+
// Remove the element from the array while preserving the index positions
171+
elems.splice(i, 1);
172+
} else {
173+
i++;
174+
}
175+
}
176+
}
169177
} );
170178

171179
jQuery.fn.extend( {

0 commit comments

Comments
 (0)