File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -248,7 +248,7 @@ function jqLiteDealoc(element, onlyDescendants){
248248
249249 if ( element . childNodes && element . childNodes . length ) {
250250 // we use querySelectorAll because documentFragments don't have getElementsByTagName
251- var descendants = element . getElementsByTagName ? element . getElementsByTagName ( '*' ) :
251+ var descendants = element . getElementsByTagName ? sliceArgs ( element . getElementsByTagName ( '*' ) ) :
252252 element . querySelectorAll ? element . querySelectorAll ( '*' ) : [ ] ;
253253 for ( var i = 0 , l = descendants . length ; i < l ; i ++ ) {
254254 jqLiteRemoveData ( descendants [ i ] ) ;
Original file line number Diff line number Diff line change @@ -535,6 +535,16 @@ describe('jqLite', function() {
535535 browserTrigger ( span ) ;
536536 expect ( log ) . toEqual ( 'click;' ) ;
537537 } ) ;
538+
539+ it ( 'should work if the descendants of the element change while it\'s being removed' , function ( ) {
540+ var div = jqLite ( '<div><p><span>text</span></p></div>' ) ;
541+ div . find ( 'p' ) . on ( '$destroy' , function ( ) {
542+ div . find ( 'span' ) . remove ( ) ;
543+ } ) ;
544+ expect ( function ( ) {
545+ div . remove ( ) ;
546+ } ) . not . toThrow ( ) ;
547+ } ) ;
538548 } ) ;
539549 } ) ;
540550
You can’t perform that action at this time.
0 commit comments