Javascript (ajouter onclic à l'événement)

Fermé
Capijupi Messages postés 1 Date d'inscription mercredi 11 avril 2012 Statut Membre Dernière intervention 11 avril 2012 - 11 avril 2012 à 14:09
jjsteing Messages postés 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 - 12 avril 2012 à 10:58
Bonjour je créer à l'aide d'un objet XMLhttprequest, une liste de DIV sur ma page principal.
Tous fonctionne bien, jusqu'a aujourd'hui ou je souhaite ajouter un bouton à cette Div permettant de la cacher.

Je rajouter donc
var bouton = document.createElement('input');
bouton.type = "button";
bouton.onclick = function(){cacherMessage(i);};



La fonction cacherMessage est la suivante :
{
	alert('ca rentre dans la fonction');
	document.getElementById(ind).style.display = false;
}



la fonction est bien appelé à chaque clic, seulement le paramètre i est toujours le même (en l'occurrence 12, qui est la dernière valeur de i). de ce fait c'est toujours la même Div qui est effacé .


Je vous met le code complet :
function readData(oData) {
	var toto = oData.getElementsByTagName("tweet");
	var nbTweetTotal = toto.length - 1;
	var i=nbTweetTotal-nbtweet;
	
	var tabBouton = new Array();
	var c = i-10;
		
	while (i > 0 && i > c) {
		var br = document.createElement('br');
		
		
		
		var unTweet = document.createElement('div');
		unTweet.className = "message";
		unTweet.id = i;
		
		
		 var bouton = document.createElement('input');
		 bouton.type = "button";
		 bouton.onclick = function(){cacherMessage(unTweet.id);};
		var nodes = oData.getElementsByTagName("tweet");
	    var p = document.createElement('p');
	    var p2 = document.createElement('p');
		var h1 = document.createElement("h3");
		
		pseudo = document.createTextNode(nodes[i].getAttribute("pseudo"));
		tweet = document.createTextNode(nodes[i].getAttribute("name"));
		date = document.createTextNode(nodes[i].getAttribute("date"));
		heure = document.createTextNode(" a " + nodes[i].getAttribute("heure"));
		
		h1.appendChild(pseudo);
		p.appendChild(tweet);
		p2.appendChild(date);
		p2.appendChild(heure);
		
		unTweet.appendChild (h1);
		 unTweet.appendChild (p);
		 unTweet.appendChild(p2);
		unTweet.appendChild(bouton);
		
		document.getElementById("lesTweets").appendChild(br);
		document.getElementById("lesTweets").appendChild(unTweet);
		i--;
		
	}
	nbtweet = nbtweet + 10;
	
	}



je ne vois pas comment faire merci
A voir également:

1 réponse

jjsteing Messages postés 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
Modifié par jjsteing le 12/04/2012 à 10:59
Bonjour,

Que vaut nbtweet dans var i=nbTweetTotal-nbtweet; ??

Et..

remplace

bouton.type = "button";
bouton.onclick = function(){cacherMessage(unTweet.id);};

par

bouton.type = "button";
alert ("id en cours=" & unTweet.id); // pour voir si il regarde bien tous les tweet...
bouton.onclick = function(){cacherMessage(unTweet.id);};
0