Forum Programmation.web [JS] problème avec l'ajout dynamique de gestion d'évenement

Posté par  (site web personnel) .
Étiquettes :
0
9
août
2004
Je voudrais adapter, pour des raisons de réutilisabilité et de praticité, le script suivant:

http://www.howtocreate.co.uk/jslibs/htmlhigh/draglayer.html(...)

testable ici:

http://www.howtocreate.co.uk/jslibs/otherdemo.html#gdl(...)

En remplaçant l'utilisation du document.write (bakaka!) fabricant la div flottante et plus généralement la fonction createDragableLayer par une fonction du type:

function makeThisLayerDragable(id)
{
document.getElementById(id).onmouseover="this.onmousedown=dragIsDown;";
document.getElementById(id).ondragstart="return false;";
document.getElementById(id).onselectstart="return false;";
}

qui comme son nom l'indique, transforme une div existante en div déplaceable.

L'idéal pour moi serait de placer l'appel à la fonction makeThisLayerDragable('madiv') dans le onload de body (à cause du #@+X!! de logiciel que je suis obligé d'utiliser--Webdev) et afin que ce soit réutilisable très facilement.

j'ai donc essayé avec ma fonction, et constatant que ça ne fonctionnait pas, j'ai d'abord déplacé mon appel de la fonction makeThisLayerDragable après la création de la div (je ne suis pas pro du JS, et je ne sais pas si le fait de mettre tout ça dans le header et le onload de body ne pose pas de problème). Ca ne fonctionne pas non plus

j'ai sorti le DOM Inspector de Firefox:

Quand je regarde la structure de ma div en mode "Object -Javascript Object" je vois bien les trois gestionnaires d'évènement rajoutés par ma fonction, par contre je ne les vois pas en mode "DOM Node". Quand je regardes le code produit par l'utilisation "normale" du JS en appelant createDragableLayer, là par contre, je vois les 3 gestionnaire dans le mode "DOM Node".

Alors voilà je comprends pas trop, à priori mon code me paraît simple et juste mais il doit y avoir un détail qui cloche!!!

merci pour tout idée ou toute aide ;)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.