Hallo
Es ist ziemlich schwierig dir hier eine zielführende Antwort zu geben, da weder aus deiner Fragestellung noch aus deinem Beispiel heraus ersichtlich wird, was der eigentliche Zweck der Übung ist, weshalb ich dir nur mit ein paar allgemeinen Überlegungen und Hinweisen dienlich sein kann.
Also, allgemein betrachtet, willst du auf Benutzereingaben in deinem input
-Element reagieren, wobei die Anweisungen deines ereignisverarbeitenden Codes dann von bestimmten Bedingungen abhängig sein sollen, das heißt, bezogen auf dein Beispiel, soll B auf A folgen und A auf B.
Da du hier nicht die Überwachung des Ereignisses von einer Bedingung abhängig machen willst, sondern dessen Verarbeitung, wäre die naheliegendste Lösung, mittels der Methode addEventListener
eine oder mehrere Handlerfunktionen zu hinterlegen, innerhalb derer du dann über conditional statements steuerst, welche Anweisungen jeweils ausgeführt werden sollen, statt wie du es gemacht hast, bei jedem Aufruf einer Handlerfunktion einen Event Listener durch einen anderen zu ersetzen.
Die Frage, wie du das konkret am besten umsetzt, hängt wie gesagt davon ab, was du eigentlich erreichen willst.
Zu deinem Code:
<html> <head> <title></title> <meta charset="utf-8"> <style></style> </head>
Dieser Teil deines Beispiels hat mit dem Thema nichts zu tun und du hättest ihn hier auch weglassen können, jedoch sei am Rande erwähnt, dass die Angabe zur Zeichenkodierung am besten das Erste sein sollte, was im head
steht.
<body onload="init()">
HTML und JavaScript sollten nicht miteinander vermischt werden, also nutze am besten die Methode addEventListener
, statt JavaScript-Code in HTML-Attributen zu notieren. Auch muss load
nicht unbedingt der richtige Event-Typ sein, sprich, hier wäre DOMContentLoaded
als Einstiegspunkt für dein Programm vermutlich die bessere Wahl gewesen.
<input type="text" id="tt" onkeyup="h1()"></input>
Das Element input
hat ein Standalone-Tag, das schließende Tag ist also falsch, und auch hier gilt, trenne Inhalt von Verhalten: Registriere deinen Eventhandler im Script. Außerdem wäre das Event input
hier wahrscheinlich passender: addEventListener('input', function ( ) { })
. Schließlich ist „tt“ kein ausdrucksstarker Bezeichner, „Eingabe“ beispielsweise würde den Code lesbarer machen.
<p id="anzeige">anzeige</p>
Für Ausgaben gibt es ein semantisch passenderes Element namens output; und für den Rest deines Codes: siehe oben.
Gruß,
Orlok