Hallo Nico,
Aber warum registstrierst du die überhaupt im Eventhandler? Wenn du die da rausnimmst, sollte sich das Problem erledigt haben.
Mit anderen Worten: registrier sie einfach da, wo Du let erstaufruf=true stehen hast. Ohne once-Option. Das Dialog-Element bleibt auch nach dem Close vorhanden, die Eventhandler auch.
Deregistrieren gänge rein theoriesam natürlich auch, ist aber (a) viel zu umständlich und geht (b) nicht so einfach mit anonymen Funktionen. Bei der Deregistrierung muss EXAKT das gleiche Funktionsobjekt verwendet werden wie bei der registrierung, und wenn die Funktionen im click-Eventhandler definiert werden, hast Du bei jedem click ein anderes Funktionsobjekt. D.h. du müsstest die Handlerfunktionen in lokalen Variablen des click-Handlers speichern, dann bleiben sie bis zum Schließen vorhanden (-> Closure)
Rolf
sumpsi - posui - obstruxi