@@ -76,7 +76,7 @@ document.addEventListener('animationstart', e => { // todo: remove/add listener
7676
7777export class SelectorObserver {
7878 constructor ( { on, off} ) {
79- this . elements = new WeakSet ( ) ; // todo WeakRef-Set: to be able to loop over elements
79+ this . targets = new Set ( ) ; // was WeakSet, but we clean targets anyway. Better WeakRef-Set? // rename to targets?
8080 this . _on = on ;
8181 this . _off = off ;
8282 }
@@ -98,17 +98,18 @@ export class SelectorObserver {
9898 */
9999 }
100100 disconnect ( ) {
101+ this . targets . clear ( ) ;
101102 observers . delete ( this ) ;
102- this . aniObserver && this . aniObserver . disconnect ( ) ;
103+ // this.aniObserver && this.aniObserver.disconnect();
103104 }
104105 _add ( el ) {
105- if ( this . elements . has ( el ) ) return ;
106- this . elements . add ( el ) ;
106+ if ( this . targets . has ( el ) ) return ;
107+ this . targets . add ( el ) ;
107108 this . _on && this . _on ( el ) ;
108109 }
109110 _remove ( el ) {
110- if ( ! this . elements . has ( el ) ) return ;
111- this . elements . delete ( el ) ;
111+ if ( ! this . targets . has ( el ) ) return ;
112+ this . targets . delete ( el ) ;
112113 this . _off && this . _off ( el ) ;
113114 }
114115
@@ -131,7 +132,7 @@ export class SelectorObserver {
131132 for ( const el of target . querySelectorAll ( '*' ) ) { // expected to be expensiv
132133 el . matches ( this . selector ) ? this . _add ( el ) : this . _remove ( el ) ;
133134 }
134- //for (const el of this.elements ) if (!el.matches(this.selector)) this._remove(el); // not iterable, use WeekRef if supported
135+ //for (const el of this.targets ) if (!el.matches(this.selector)) this._remove(el); // not iterable, use WeekRef if supported
135136 //for (const el of target.querySelectorAll(this.selector)) this._add(el);
136137 }
137138 }
0 commit comments