Heim >Web-Frontend >js-Tutorial >Warum funktioniert „onclick='clear()'` nicht in JavaScript?
Beim Versuch, einen einfachen Rechner zu erstellen, stößt man auf ein rätselhaftes Problem: das „clear“. Die Schaltfläche „, der das Attribut onclick="clear()" zugewiesen ist, führt ihre beabsichtigte Funktion zum Löschen des Textfelds nicht aus.
Das Rätsel liegt in den intrinsischen Ereignisattributen von JavaScript, wie z. B. onclick. Diese Attribute verwenden die with-Anweisung, eine Vorgehensweise, von der aufgrund der Gefahr von Verwirrung und Kompatibilitätsbedenken abgeraten wird. Folglich ruft das Attribut onclick="clear()" versehentlich document.clear() auf und nicht die vorgesehene globale Funktion clear().
Um dieses Problem zu beheben, kann man die Funktion „clear“ umbenennen oder explizit „window“ aufrufen. klar(). Eine bessere Lösung besteht jedoch darin, addEventListener für die Ereignisbindung zu verwenden, wodurch die Verwendung intrinsischer Ereignisattribute umgangen wird.
Das folgende Codebeispiel demonstriert die ordnungsgemäße Implementierung mit addEventListener:
<script> const clearButton = document.querySelector('input[value="C"]'); clearButton.addEventListener('click', clear); function clear() { document.getElementById("field").value = ""; } </script>
Das obige ist der detaillierte Inhalt vonWarum funktioniert „onclick='clear()'` nicht in JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!