Maison > interface Web > js tutoriel > Pourquoi `onclick='clear()'` ne fonctionne-t-il pas et comment puis-je y remédier ?

Pourquoi `onclick='clear()'` ne fonctionne-t-il pas et comment puis-je y remédier ?

Susan Sarandon
Libérer: 2024-12-12 16:56:11
original
453 Les gens l'ont consulté

Why Doesn't `onclick=

Pourquoi onclick="clear()" ne fonctionne pas

Lorsque vous tentez d'exécuter une fonction nommée "clear()" à l'aide du attribut onclick, la fonction peut échouer à s'exécuter. Cela est dû aux attributs d'événement intrinsèques, tels que onclick, qui utilisent l'instruction with.

Le problème : l'instruction with

L'instruction with est fortement déconseillée car elle peut mener à des bugs déroutants et à des problèmes de compatibilité. Lorsque onclick="clear()" est utilisé, il appelle par erreur document.clear() au lieu de la fonction globale clear() souhaitée.

Correction rapide

Pour résolvez le problème, renommez la fonction clear() pour éviter d'utiliser le mot réservé "clear" ou appelez explicitement window.clear().

Solution recommandée : addEventListener

Une solution plus robuste consiste à utiliser addEventListener pour lier les gestionnaires d'événements. Cette méthode est préférée aux attributs d'événement intrinsèques car elle fournit un moyen clair et fiable d'associer des événements à des fonctions.

Exemple :

<button onclick="clear()">C</button>
Copier après la connexion

Peut être réécrit à l'aide de addEventListener :

<button>
Copier après la connexion

En tirant parti de addEventListener, le gestionnaire d'événements est correctement lié à la fonction globale clear(), garantissant son exécution réussie lorsque le bouton est cliqué.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal