Bonjour,
Je crée une suite de "div" (environ une dizaine) avec jquery. Chaque "div" est cliquable avec un message d'alerte.
Le code (simplifié épuré avec seulement 2 'div' pour ce post):
Problème: Quelque soit la "div" que l'on clique, l'alerte envoie toujours le même message, celui de la dernière "div" de la liste
ex ci-dessus: si on clique sur la 1ere "div" on a l'alerte 'https://www.alsacreations.com' au lieu de "google.com".)
Le sélecteur change pourtant à chaque itération de la boucle "for"
Une "malfaçon" dans mon code? La méthode n'est pas la bonne?
Merci d'avance pour votre aide
Modifié par gilbertdelyon (13 Dec 2020 - 09:14)
Je crée une suite de "div" (environ une dizaine) avec jquery. Chaque "div" est cliquable avec un message d'alerte.
Le code (simplifié épuré avec seulement 2 'div' pour ce post):
jQuery(document).ready(function($) {
var urls = [
'https://google.com',
'https://www.alsacreations.com',
];
var div = [];
for (var i=0; i< urls.length; i++) {
div[i] = $('<div id="div'+i+'">').addClass("essai").text(urls[i]).appendTo("body");
div[i].mouseover(function(){$(this).css('cursor','pointer')});
lien = urls[i];
alert('creation listner : '+lien); //alerte bien avec urls[i]
div[i].click(function(){ alert('click : '+lien)});//alerte asystématiquement avec le dernier des urls[i]
}//fin boucle for
});//fin jQuery(document)
Problème: Quelque soit la "div" que l'on clique, l'alerte envoie toujours le même message, celui de la dernière "div" de la liste
ex ci-dessus: si on clique sur la 1ere "div" on a l'alerte 'https://www.alsacreations.com' au lieu de "google.com".)
Le sélecteur change pourtant à chaque itération de la boucle "for"
Une "malfaçon" dans mon code? La méthode n'est pas la bonne?
Merci d'avance pour votre aide
Modifié par gilbertdelyon (13 Dec 2020 - 09:14)