Welche Parameter werden an einen DOM onclick-Handler übergeben? Wie werden die Parameter aufgelöst/Was ist der Ausführungskontext eines DOM onclick-Handlers?DOM onclick-Handler-Parameter/Ausführungskontext
Sehen Sie diese jsbin (die Browser-Entwickler verwenden Konsole als jsbin ein nicht sehr gut ist) oder dem folgenden Code:
<!-- Remove the id="someid" and see what happpens -->
<input type="text" id="someid" onclick="clickHandler(this,event,someid)'"/>
<script>
function clickHandler() {
console.log(arugments);
}
</script>
Referenzen
Weitere Details
I Beachten Sie, dass das Anhängen von Ereignissen im DOM nicht empfohlen wird. Aber diese Technik wird immer noch bei Legacy-Anwendungen verwendet, und ich kann keine Dokumentation finden, die über die Übergabe eines Handlers an diesen Parameter hinausgeht.
Also, was Sie fordern hier? Die Argumente, die im Inline-Event-Handler enthalten sind, sind eindeutig übergeben, und da es sich nur um eine Funktion handelt, können Sie das übergeben, was Sie wollen. Sind Sie nur verwirrt, warum 'someid' auf das Element zeigen würde, wenn ja, weil jedes Element mit einer ID dem globalen' window.someid' als Verweis auf das Element hinzugefügt wird? – adeneo
@adeneo Oh ich wurde verwirrt, es ist der globale Kontext, und ich wusste nicht, dass ein Element mit einer ID zum Fensterobjekt unter dem gleichen ID-Namen hinzugefügt wurde. Können Sie mich auf eine Dokumentation verweisen, die besagt, dass ein Element mit einer ID zum Fensterobjekt hinzugefügt wurde? – ksrb
http://stackoverflow.com/questions/3434278/do-dom-tree-elements-with-ids-become-global-variables – adeneo