Un écouteur sur un élément fait avec createElement ?

Résolu/Fermé
sodasoma - 11 août 2016 à 21:48
 sodasoma - 12 août 2016 à 15:36
Bonjour bonjour,

je cherche à créer un écouteur directement dans la fonction qui génère des éléments HTML sur l'un d'eux.

Voici mon code WIP, commentaire sur la partie où je me demande comment faire:

adProp=function (prop,descript){
	var proj=document.createElement("article");
	proj.setAttribute("class", "proposition");
	var projcontent=document.createElement("p");
	var t = document.createTextNode(prop);
	projcontent.appendChild(t);
	proj.appendChild(projcontent);
	var para=document.createElement("p");
	t = document.createTextNode(descript);
	para.appendChild(t);
	proj.appendChild(para);

/*/- c'est ici je ne sais pas comment faire est ce possible? dans la même fonction: "adProp(param1,param2)" ?*/
		proj.addEventListener("onmouseenter",function(){
		var mytxt=this.querySelector("this:last-child").value;
		console.log(mytxt+"hello");
		});

//ajout du nouvel enfant proj(article)
	document.getElementById('prj').appendChild(proj);
	
	
	}


Merci, là j'ai l'impression de manquer quelque chose.. rien ne d'affiche dans la console(pareil avec alert).

1 réponse

Utilisateur anonyme
12 août 2016 à 00:03
As-tu essayer ton code avant de demander de l'aide? Car il fonctionne, enfin il faut juste remplacer onmouseenter par mouseenter car pour les fonction EventListener in faut juste retirer le on.
0
ok my bad...oui j'ai testé , il me fallais le 'il faut juste' pourtant j'étais sur la liste des events souris pour aller chercher le onmouseenter.
Je vais modifier ça merci.
0
enfin testé (encore cette fois ci sans le on devant mouseenter) et ça marche pour détecter l'event...j'ai un problème de ciblage mais je pense arriver à régler ça tout seul.
J'ai essayé e changer le sélecteur, je n'y suis pas encore:

  proj.addEventListener("mouseenter",function(){
  var mytxt=this.querySelector("p:nth-child(2)").value;
  console.log(mytxt+"hello");//output: undefinedhello

Le but est d'obtenir le texte(paramètres de la fonction 'descript') contenu dans le second 'p' du container.
0
Utilisateur anonyme
12 août 2016 à 01:31
Pourquoi pas juste faire console.log(descript+"hello");
0
oui c'est ce que j'ai fait au final.
Je voulais utiliser un sélecteur DOM pour pouvoir y accéder hors de la fonction. Je craignait que ça pose un problème de portée de variables (locales) et la durée de vie de celles ci.

C'est une version préparatoire avant de finaliser des objets (donc le problème ne se posera plus) plutôt que des fonctions et probablement passer à jquery.
merci de tes réponses :)
0