Heim > Web-Frontend > js-Tutorial > Warum funktioniert „onclick='clear()'` nicht in JavaScript?

Warum funktioniert „onclick='clear()'` nicht in JavaScript?

Linda Hamilton
Freigeben: 2024-12-24 21:12:12
Original
993 Leute haben es durchsucht

Why Doesn't `onclick=

onclick="clear()" funktioniert nicht: Das JavaScript-Hindernis verstehen

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage