Warum über JavaScript Events?
man kann ja in seinen html code onclick oder was auch immer für ein Event hinschreiben.
ich sehe trotzdem bei vielen Profis immer das hier
Html :
<body>
<button id='MeinButton'>Senden</button>
</body>
js:
document.querySelector('#MeinButton').addEventListener('click', MeineFunktion);
function MeineFunktion(){
event.preventDefault();
Alert(1);
}
einfacher wäre das hier
<body>
<button onclick='MeineFunktion();' id='MeinButton'>Senden</button>
</body>
function MeineFunktion(){
event.preventDefault();
Alert(1);
}
Und wieso muss man prevent default hinschreiben ?
Was genau macht der browser denn by default / standardmäßig das es sonst nicht funktioniert ?
4 Antworten
Es ist unübersichtlich JavaScript und HTML zu mischen. Außerdem kannst du so problemlos mehrere Event Listener auf ein Objekt registrieren.
Teilweise hat man ja nicht mal zu beginn HTML sondern das wird zur Laufzeit ja manipuliert. Vielleicht möchte man auch dynamisch event listener hinzufügen oder entfernen. Das geht alles sauberer wenn man kein JS in den HTML Code schreibt.
Bezüglich prevent default hast du recht. Oft braucht man das nicht. Manchmal eben schon.
Mit preventDefault nimmst du einem Objekt sein Standardverhalten.
Ansonsten trennt man gerne JavaScript von HTML für eine bessere Lesbarkeit und Orientierung.
Vermutlich lassen sich mehrere Funktionen an ein Event koppeln. Außerdem kann man bestimmt dem Listener dynamisch weitere Events hinzufügen oder auch entfernen.
Ich würde sagen, es kommt darauf an, wie groß das Projekt ist, welches du programmieren willst. Bei kleinen Minianwendungen reicht vermutlich die Quick-And-Dirty-Variante.
Bei kleinen Programmen kann man auch mit globalen Variablen arbeiten usw.
Das wird wohl eher durch gewisse JS-Frameworks reinkommen. Da ist dann oft auch überflüssige Logik dabei, die man auch kürzer (aber dann weniger allgemeingültig) hätte hinschreiben können.