Maison >interface Web >js tutoriel >Pourquoi `onclick='clear()'` ne fonctionne-t-il pas en JavaScript ?

Pourquoi `onclick='clear()'` ne fonctionne-t-il pas en JavaScript ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-24 21:12:121050parcourir

Why Doesn't `onclick=

onclick="clear()" Ne fonctionne pas : Comprendre l'obstacle JavaScript

En tentant de créer une calculatrice de base, on rencontre un problème déroutant : le "clear ", attribué avec l'attribut onclick="clear()", ne parvient pas à exécuter sa fonction prévue d'effacement du champ de texte.

L'énigme réside dans le attributs d'événement intrinsèques, tels que onclick. Ces attributs utilisent l'instruction with, une pratique déconseillée en raison de son potentiel de confusion et de problèmes de compatibilité. Par conséquent, l'attribut onclick="clear()" appelle par inadvertance document.clear() plutôt que la fonction globale clear() prévue.

Pour résoudre ce problème, on peut renommer la fonction clear ou appeler explicitement window. clair(). Cependant, une solution supérieure consiste à utiliser addEventListener pour la liaison d'événement, ce qui évite l'utilisation d'attributs d'événement intrinsèques.

L'exemple de code suivant démontre la bonne implémentation à l'aide de addEventListener :

<script>
  const clearButton = document.querySelector('input[value="C"]');
  clearButton.addEventListener('click', clear);

  function clear() {
    document.getElementById("field").value = "";
  }
</script>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn