8791 sujets

Développement web côté serveur, CMS

Bonjour à tous. Je créer des blocs dans une boucle PHP.

Lorsque je créer une div avec un onmouseover ca marche. Quand je met un onclick.... ca ne marche pas .... mais pas d'erreurs...

code créer =>


echo "\n<div id=\"bloque$n\" onclick='alert(\"test\");' title=\"".basename($adresse)."\" style=\"position:absolute; left:$xpos"."px; top:$ypos"."px; width:$wpos"."px; height:$hpos"."px;z-index:".$val["zindex"].";\"><img border='0' src='./contenu/image/$adresse' width='100%' height='100%'></div>\n";


code provenant de la source :


<div id="bloque1" onclick='alert("test");' title="Chevaux-4033_521585.jpg" style="position:absolute; left:43px; top:709px; width:388px; height:254px;z-index:0;"><img border='0' src='./contenu/image/Chevaux-4033_521585.jpg' width='100%' height='100%'></div>


Y'aurait t'il une règle qui empêche des attributs JS d'être rajouté dans une boucle ... (c'est un WHILE au fait) ?

des idées ?

Rude
Salut ffwrude,

Tout me semble correcte même si - et il s'agit d'une préférence personnelle, j'aurais mis des doublequote pour chaque attribut. N'aurais-tu pas plutôt une erreur JS en amont ? Peut-on voir le code avec onmouseover ?
ffwrude a écrit :
Y'aurait t'il une règle qui empêche des attributs JS d'être rajouté dans une boucle
Pas à ma connaissance
Bah le code avec le onmouseover c'est juste le même sauf que je remplace onclick par onmouseover.


En faisant un alert d'un this.onclick j'ai découvert qu'il y'avait une fonction. J'ai vidé le onclick au cas ou mais ... sans résultat.

Vu que c'est un code repris d'un collegue il y'à peut être un autre onclick défini quelque part.

Alors attention super question. Peut on "concatené une fonction" genre je rajoute au onclick une suite ?

Rude
ffwrude a écrit :
En faisant un alert d'un this.onclick j'ai découvert qu'il y'avait une fonction. J'ai vidé le onclick au cas ou mais ... sans résultat.
Si l'événement onclick est redéfini de manière programmatique: monDiv.onclick = ..., et donc, à fortiori, après chargement de monDiv dans le navigateur, vider l'attribut de changera pas grand chose car la fonction définie en dernier est celle qui sera déclenchée (par écrasement). C'est surement pour ça que tu penses qu'il se ne passe rien au onclick.
ffwrude a écrit :
Alors attention super question. Peut on "concatené une fonction" genre je rajoute au onclick une suite ?
C'est tout à fait possible en appelant la méthode addEventListener (attachEvent pour IE) à laquelle tu passes une fonction de rappel, ce qui te permet de gérer des "piles" d'événements pour chaque gestionnaire.
Ahhh ca c'est cool ca Smiley smile Je pensais pas qu'on pouvait s'en servir comme ca Smiley smile

merci bien.

Pour ce qui est du onclick je viens de trouver. En fait c'était tout con lol... j'ai un drag&drop sur la div... D'ou ma demande sur la concatenation de fonction. Car oui je peux détruire le onclick ca fonctionne dans mon cas après diverses modif ...

mais je vais m'orienter vers ta solution. Merci bien Smiley smile
Si tu repasses par la je te conseille mootools, un "framework" javascript qui possède une très bonne gestion d'evenements crossebrowser de plus (sinon les fonctions ne sont pas les même sur FF et IE).