return maybe;: remove-event-problem, wenn handler-fkt innere fkt ist

Beitrag lesen

Guten Abend!
Nach ewig langer Fehlersuche hab ich mein Problem jetzt stark eingrenzen können,
aber irgendwie hab ich das Gefühl, etwas ganz Grundlegendes zu übersehen...
Hier das extrem vereinfachte Szenario:

  
bla = {  
    handle : function ( elem, remove ) {  
  
      if ( remove ) {  
	 elem.removeEventListener( 'mousedown', down, true );  
	 return this;  
      }  
      elem.addEventListener( 'mousedown', down, true );  
  
      function down(e) { /* action on mousedown */ }  
  
      return this;  
    }  
}  

Für ein Element einen Listener mit bla.handle( el ) zu registrieren, klappt;
wenn ich dagegen mit bla.handle( el, true ) den selbigen wieder abmelden will,
geht etwas schief.
Das muss damit zutun haben, dass der handler ( die Funktion down ) eine private
Funktion von bla.handle ist.
Es würd hier zu weit führen, zu erklären, warum ich letzteres so haben möchte.
Kann mir einer die Bäume absägen, damit ich den Wald wieder seh?

Vielen lieben Dank!