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

Beitrag lesen

Oh, damit, dass da kurz vor Mitternacht noch was kommt, hatte ich nicht gerechnet ^^
Danke für Deine Antwort, molily!

Erkläre es trotzdem mal, denn das ist die Ursache des Problems.

Also: ich vereinfache mal die Sachlage so gut es geht auf das Wesentliche:
Ich habe eine library, die so ähnlich wie jquery funktioniert - ich nenne sie hier mal M.
Will ich beispielsweise alle HTML-Elemente der Klasse 'drag' draggable machen,
so notiere ich: M('.drag').drag(/*obj-lit.*/); als Parameter kann optional ein Objekt-Literal mit Spezifikationen übergeben werden
( call-back-functions etc. ).

  
  drag : function( params ) {  
    // params ist ein Objekt-Literal, das hier ausgewertet, ggf mit defaults  
    // gefüllt wird  
    // die an anderer Stelle gespeicherten Elemente werden "geholt" und in einer  
    // for-Schleife wird diesen per addEventListener eine Event-Funktion (down) on 'mousedown' zugewiesen  
    // in der funktion down werden die Parameter, die an drag übergeben wurden, verarbeitet und es werden die Aktionen für 'mousemove' und 'mouseup' definiert.  
  }  

Ich hatte die Funktion down zunächst im scope von drag, damit diese Zugriff auf die Parameter hat,
weil ich bei der Notation addEventListener('mousedown',down,true) keine Parameter übergebe und
andererseits bei einer Kapselung per anonymer Funktion diese ja wieder verloren geht (weil namenlos) -
 wobei ich übersehen hatte, dass diese Funktion ja bei jedem Aufruf von drag eine neue ist und mein removeEventListener-Versuch natürlich fehlschlägt.
Wie gesagt: Etwas ganz Wesentliches übersehen - hätte ich eigentlich selber erkennen müssen :/

Lieben Gruß