11548 sujets

JavaScript, DOM et API Web HTML5

Bonsoir,
Je cherche à créer des paragraphes (<p>) automatiquement en Javascript et lancer une fonction paramétrée à chaque fois que le curseur de l'utilisateur passe sur un de ces paragraphes. Par réflexe j'utiliserais onmouseover, ce qui fonctionne très bien pour un paragraphe en HTML (genre <p onmouseover="fonction();">), mais que je n'arrive pas à faire fonctionner dans Javascript (genre objet.onmouseover=fonction();)

J'ai le code suivant :
nouveauP = document.createElement("p");

nouveauP.style.marginLeft = x+"px";
nouveauP.style.marginTop = y+"px";
nouveauP.style.position = "absolute";
nouveauP.onmouseover=Afficher(1); // c'est là que ça coince

mon_div = document.getElementById("bloc"); // comprend pas l'utilité mais nécéssaire
document.body.insertBefore(nouveauP,mon_div);


Si quelqu'un à une idée de la façon dont il faut procéder,

Merci d'avance
Modifié par Laponies (10 Oct 2009 - 21:30)
Bonsoir,

Pour ajouter un attribut (onmouseover est un attribut) il faut utiliser setAttribute, ce qui donne
nouveauP.setAttribute("onmouseover", "Afficher(1)");

Au passage, ton paragraphe est vide alors il n'apparaitra peut-être pas (dépend si tu lui met des marges interne ou une taille).

La ligne dont tu ne comprend veux dire : récupère l'élément qui à un id nommé "bloc", et la suivante dit : insère nouveauP avant mon_div.
Merci beaucoup ça marche très bien !

Concernant ce dont je ne comprends pas l'utilité enfaite c'est un mémo pour moi que j'avais oublié d'enlever. Ce qui m'énerve c'est que ce qui définit mon_div (soit l'id s'appelant bloc) n'existe pas et donc j'aurai envie de pas créer cette varaible. J'ai dû créer mon_div pour faire fonctionner insertBefore. Enfaite j'aurai aimé insérer mes paragraphe sans à avoir spécifier avant quoi ils apparaissent. Mais c'est pas vraiment un problème, ça n'affecte pas le fonctionnement du site.

Merci en tout cas Smiley smile !
Bah dans ce cas il y a appendChild. Ça permet de rajouter un élément dans un autre
document.body.appendChild(nouveauP);