Hallo Matze,
alle Variablen die außerhalb von Funktionen angelegt werden, liegen im windows-Objekt und sind global, d.h. aus jeder Funktion kann auf diese Variablen zugegriffen werden. Variablen, die in einer Funktion mit var angelegt werden, sind nur in dieser Funktion und in ihren "Unterfunktionen" bekannt und werden beim Beenden der Funktion vergessen. Vergisst man hier das "var" erhält man globale Variablen. Hängt man an vorhandene Objekte Variablen an, sind diese auch von überall zu erreichen, aber die Gefahr, mit gleichnamigen Variablen aus anderen Funktionen zu kollidieren, ist geringer.
var global1=1;
global2 = 1;
function tuwas() {
global3 = 1;
var lokal = 2;
}
Speziell in deinem Fall soll der Eventhandler ja an mehrere Elemente gehängt werden und da kollidieren die globalen Variablen bestimmt.
Gruß, Jürgen