Kann nicht passieren, Veranstaltung addEventListener: Verschluss Problem
This one ' s driving me crazy... ich habe eine Schleife, die fügt einen Ereignis-listener für ein SVG-Objekt. Das Objekt ist, für die Zwecke der Beweisführung, ein kleiner Kreis, und ich muss hinzufügen, mouseover-und mouseout-events für jede der 10 Kreise.
Mein erstes problem ist das standard-Verschluss-Umfang der Sache - denn alle Listener Hinzugefügt werden, in der gleichen Schleife, Sie alle sehen die gleichen ungültigen Wert der schleifenvariablen. Kann ich dieses Problem beheben, denke ich, aber das zweite problem ist, dass ich zu Durchlaufen haben, 'Ereignis', um den Hörer, und ich kann nicht finden, jeder Weg, um zu beheben diese Probleme gleichzeitig.
Habe ich versucht, verschiedene Versionen von diesem:
for(month = 0; month < nMonths; month++) {
...
shape.addEventListener(
"mouseover",
(function(event, index) { popup_on(event, foo, index); })(event, month),
false);
group.appendChild(shape);
}
Diese spezielle version gibt mir '- Ereignis nicht definiert'. popup_on
ist der eigentliche handler, und muss event
und der aktuelle Wert von month
. Irgendeine Idee, wie ich dies tun sollte? Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wird die Veranstaltung an Ihre Funktion übergebenen automatisch—nur ist es das erste argument an die Funktion übergeben
addEventListener
. Auch ist false der Standardwert für das capture-parameter.Auch, Sie sind ok mit
foo
geschlossen über in Ihrem Ereignis-callback? Wenn nicht, könnten Sie das gleiche tun mit ihmUnd wenn alle diese lokalen Variablen sind immer ärgerlich, können Sie diese Parameter, um vielleicht die Dinge ein bisschen mehr aufgeräumt