Bonjour, bonsoir, cela fais 3-4 heures que je me retrouve à essayer de faire apparaître un "clic" dans la console en cliquant sur une image de la liste d'image présent dans la page (contenant la classe Img2 , voici le code javascript en question :
function clic() {
console.log("Clic !");
}
var focus=new Array();
focus=document.getElementsByClassName("Img2");
console.log(focus.length);
for (var i = 0; i < focus.length; i++) {
if(focus[i]){
focus[i].addEventListener("click",clic);
}
}
Après avoir compris que j'avais besoins d'une boucle pour gérer un tableau et non pas une seule variable en utilisant le getElementsByClass(), j'ai aussi cru comprendre que c'était un peu différent pour les images ._.
Une âme charitable ici ?
Edit : Petite infos supp : le message afficher sur la console concernant la taille du tableau m'indique 0 ^^"
Bonjour tu ne dois pas mettre tes événements clic dans ta fonction clic car ça veut dire que si on clic sur une image alors on affiche un message dans la console ET on affecte à nouveau les événements clic aux images. Tu vois bien que ça se répète Ensuite pas besoin de déclarer un new Array tu peux mettre directement le tableau retourner dans une variable javascript va la considérer comme un tableau automatiquement. Et tu n'as pas besoin de tester si focus[i] existe car tu boucle autant de fois qu'il y a d'éléments dans le tableau, tu n'iras jamais au delà donc c'est inutile de tester.
function cliquer() {
console.log("l'image a été cliquée");
}
var focus = document.getElementsByClassName('Img2');
for(var i = 0; i < focus.length; i++) {
focus[i].addEventListener('click', cliquer);
}
Je veux pas faire le mec embêtant, mais ça marche pas ^^'
J'ai mis exactement le même code que tu as écrit, la console ne dis rien, mais rien ne se passe non plus quand je clic sur les images possédant la classe
Img2 ...
ça me prend tellement la tête, j'vais mal dormir cette nuit :')
Attends-tu que la page soit complètement chargée avant d'exécuter ton script ?
Yep je m'amuse pas à cliquer le plus vite possible sur les images quand je réactualise la page ^^
En fait j'ai l'impression que rien ne se trouve dans ma variable focus ...
EDIT : VDD , je viens de comprendre une petite subtilité , et donc , en fait , j'ai rien qui retarde l'utilisation du script, et vu que les images prennent un peu de temps à charger ( par rapport à la page et au script ) , en effet ça peut être le problème !
Du coup je sais pas trop quel méthodes utiliser, j'ai pas encore fais le gros cours sur le javascript ( et rien vu à la fac non plus )
Je vous file le code de la page html en entier au cas où :
Charger une grosse lib comme jquery juste pour faire un select d'élément (d'ailleurs je conseil d'utiliser querySelectorAll plutôt ), et faire une boucle.
On peut se passer de jquery pour beaucoup de choses de nos jours.
C'est bien ce que je dis, tu n'as pas chargé ton script une fois que le DOM est chargé. Places ta balise script avant </body>, comme l'a conseillé YLaakel.
Ta variable focus est vide parce que les éléments HTML ne sont pas encore chargés au moment de l'exécution du script. Il est donc impossible de trouver des éléments qui ont la classe Img2.
Développeur Front-End freelance disponible pour contrats ! En guerre contre l'utilisation abusive de jQuery.
Merci beaucoup, je ne pensais pas que ce serais aussi simpliste ^^" , je m'attendais à devoir mettre une condition en utilisant une méthode qui vérifie le chargement complète de la page , j'me sens bien stupide ._.
Merci beaucoup, je ne pensais pas que ce serais aussi simpliste ^^" , je m'attendais à devoir mettre une condition en utilisant une méthode qui vérifie le chargement complète de la page , j'me sens bien stupide ._.
On a tous fait cette erreur
PLS pour avoir un "clic" dans la console
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
My website : Mon serveur discord, Se demerder tout seul, Faille XSS et SQL