Définir onClick avec JavaScript

Tahseen Tauseef 30 janvier 2023
  1. Qu’est-ce qu’un événement et un EventListener en JavaScript
  2. Comment ajouter un EventListener onClick à un élément en JavaScript
  3. Comment passer une référence d’un élément à un EventListener onClick en JavaScript
  4. Comment ajouter un EventListener onClick à Jquery en JavaScript
Définir onClick avec JavaScript

Dans ce tutoriel, nous verrons comment attacher un écouteur onClick à un élément en utilisant JavaScript ; nous discuterons:

  • Qu’est-ce qu’un événement et un EventListener ou un EventHandler en JavaScript
  • Comment ajouter un EventListener onClick à un élément
  • Comment passer une référence à un EventListener onClick
  • Comment ajouter onClick EventListener en utilisant Jquery

Qu’est-ce qu’un événement et un EventListener en JavaScript

Un événement est quelque chose que fait un navigateur ou un utilisateur final. Ces événements peuvent être gérés par un concept JavaScript appelé Event Handlers ou Event Listeners. Un écouteur d’événement est exécuté lorsqu’un événement particulier se produit.

onClick est l’un de ces écouteurs d’événement. Un écouteur d’événement onClick se déclenche/s’exécute lorsqu’un utilisateur clique sur un élément.

Comment ajouter un EventListener onClick à un élément en JavaScript

<!DOCTYPE html>
<html>
    <body>
        <div id="textElement" onclick="ChangeColor()">
            Change Color to Red
        </div>
        <script>
            function ChangeColor() {
              document.getElementById("textElement").style.color = "red";
            }
        </script>

    </body>
</html>

Le code ci-dessus déclencherait/exécuterait la méthode ChangeColor, qui accédera à l’élément, en utilisant le modèle d’objet Document, ayant un identifiant de textElement et en changeant la couleur de son texte en rouge.

Notez que le onClick est défini comme une propriété d’un élément en HTML similaire à class, id, etc.

Alternativement, vous pouvez définir l’attribut onClick d’un élément directement en utilisant JavaScript.

<!DOCTYPE html>
<html>
    <body>
        <div id="textElement">
            Change Color to Red
        </div>
        <script>
          document.getElementById("textElement").onclick = function() {
             document.getElementById("textElement").style.color = "red";
          };
        </script>

    </body>
</html>

Cela accédera au textElement et lui attribuera une fonction; cette fonction s’exécutera lorsque l’utilisateur cliquera sur l’élément HTML, le résultat sera similaire. Par exemple, la couleur de l’élément ayant un id de textElement serait changée en rouge.

De plus, vous pouvez utiliser la méthode/fonction addEventListener de l’élément JavaScript pour exécuter la même fonctionnalité.

<!DOCTYPE html>
<html>
    <body>
        <div id="textElement">
            Change Color to Red
        </div>
        <script>
            let element = document.getElementById("textElement");
             element.addEventListener("click", function(){
                 element.style.color = "red";
             });
        </script>

    </body>
</html>

Le addEventListener prend deux arguments ; le premier est le type d’événement à écouter sur un élément HTML, et le second est la fonction de rappel qui s’exécuterait lorsqu’un certain événement se produirait.

Si vous utilisez Internet Explorer, le addEventListener ne fonctionnera pas en raison de problèmes de compatibilité. Nous devrions utiliser une solution de secours en utilisant attachEvent pour reproduire ce comportement.

<!DOCTYPE html>
<html>
    <body>
        <div id="textElement">
            Change Color to Red
        </div>
        <script>
            let element = document.getElementById("textElement");
            if(element.addEventListener){
               element.addEventListener('click', function(){
                    element.style.color = "red";
               });
            }else if(element.attachEvent){
               element.attachEvent('onclick', function(){
                    element.style.color = "red";
               });
            }
        </script>

    </body>
</html>

Comment passer une référence d’un élément à un EventListener onClick en JavaScript

<!DOCTYPE html>
<html>
    <body>
        <div id="textElement" onclick="ChangeColor(this,'red')">
            Change Color to passed Color
        </div>
        <script>
           function ChangeColor(element,color) {
              element.style.color = color;
           }
        </script>

    </body>
</html>

Dans l’exemple, nous passons deux arguments, this et red, this transmet une référence à un élément DOM à la fonction, alors que red n’est qu’une chaîne.

Vous pouvez remarquer qu’en changeant simplement le deuxième argument, nous pouvons changer la couleur de l’élément. Cette approche augmente la réutilisabilité par rapport à l’autre approche. Par exemple, nous pouvons utiliser la méthode ChangeColor avec plusieurs éléments.

<!DOCTYPE html>
<html>
    <body>
        <div id="textElement" onclick="ChangeColor(this,'red')">
            Change Color to Red
        </div>
        <div id="textElement" onclick="ChangeColor(this,'blue')">
            Change Color to Blue
        </div>
        <script>
           function ChangeColor(element,color) {
              element.style.color = color;
           }
        </script>

    </body>
</html>

Comment ajouter un EventListener onClick à Jquery en JavaScript

Si vous n’utilisez pas Vanilla JavaScript mais utilisez quelque chose comme Jquery, une bibliothèque JavaScript, le processus est similaire ; la seule différence est la syntaxe.

<!DOCTYPE html>
<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js">	
    </script>
    
    <script>
    $(document).ready(function(){
      $("#textElement").click(function(){
        $(this).css('color','red')
      });
    });
    </script>
</head>
    <body>

    <div id="textElement">Change Color to Red</p>

    </body>
</html>

Il ajoutera un écouteur d’événement à l’élément ayant un id de textElement dès que le document se charge.

Article connexe - JavaScript EventListener