addEventListener ohne Parameterübergabe
18. Dezember 2005
Ich muss mich bei den JavaScript-Kundigen meiner Leserschaft ein bisschen ausweinen. Sorry. Aber ich kann mir eine ganz bestimmte Sache nicht erklären.
Folgendes: Ich schreibe ein Script, das bei Aufruf der Seite den DOM-Baum analysiert und ganz bestimmten <li>
-Elementen einen EventHandler zuweist. Das klappt soweit auch ganz hervorragend und natürlich unterscheide ich hier zwischen guten und bösen Browsern – jeder kriegt sein bevorzugtes Codefragment, mit dem ich ein onclick
dort anbringe, wo vorher kein onclick
gewesen ist:
meinListItem.addEventListener("click", macheEtwas, false);
} else if (meinListItem.attachEvent) { //Explorer
meinListItem.attachEvent("onclick", macheEtwas);
} else {
meinListItem.onclick = macheEtwas;
}
Nun meine superintelligente Frage: Warum zur Hölle kann ich meiner Funktion macheEtwas
eigentlich keine Parameter übergeben? Es ist offensichtlich nicht vorgesehen, und das macht mich fuchsig. Denn ohne Parameterübergabe machen Funktionen doch nur halb so viel Spaß! Hier leistet sich JavaScript eine Inkonsistenz, die ich nicht verstehe. Vielleicht muss mir da jemand auf die Sprünge helfen!