[RESOLU]évènements souris

évènements souris [RESOLU] - HTML/CSS - Programmation

Marsh Posté le 17-10-2007 à 14:53:12    

Yop !
 
Alors voilà, j'ai un formulaire d'ajout de div en javascript (que j'ai pu finaliser grâce à l'aide d'anapajari que je remercie).
Les div ajoutées doivent être déplaçables en dragndrop.
Pour ça :

Code :
  1. //ajout du div
  2. var divtext = document.createElement('div');
  3. //définition du parent
  4. document.getElementById('carte').appendChild(divtext);
  5. //fonctions sur évènement de souris
  6. divtext.onmousedown=function(){activer(this,'event');};
  7. divtext.onmousemove=function(){drag(this,'event');};


 
j'ai essayé en enlevant les quotes autour de event également :  

Code :
  1. //fonctions sur évènement de souris
  2. divtext.onmousedown=function(){activer(this,event);};
  3. divtext.onmousemove=function(){drag(this,event);};


 
Le problème est donc que avec les quotes, le paramètre est logiquement considéré comme du texte, et donc impossible de faire  
curX = event.clientX pour récupérer les coordonnées du curseur.
Et sans les quotes, erreur javascript dans le script : 'event not declared'.
 
En revanche tout marche bien si je met l'appel dans le code HTML :  

Code :
  1. <div id='text' onmousedown='activer(this,event);'>blabla</div>


 
Ma question est donc : quelle est la solution pour ajouter une fonction sur évènement souris avec un paramètre event au sein du code javascript ?
 
Merci :pt1cable:


Message édité par Yertle le 17-10-2007 à 15:21:08
Reply

Marsh Posté le 17-10-2007 à 14:53:12   

Reply

Marsh Posté le 17-10-2007 à 15:00:29    

Event est une variable passée en paramètre de l'évènement :

Code :
  1. divtext.onmousedown = function(event) {
  2.   activer(this, event);
  3. }


T'as juste oublié de le déclarer en paramètre de la fonction. Maintenant faut un hack supplémentaire pour IE, je crois que c'est :

Code :
  1. divtext.onmousedown = function(event) {
  2.   if(!event) {
  3.      event = window.event;
  4.   }
  5.   activer(this, event);
  6. }


A tester... Aussi, je sais pas si le this marche tout le temps, à modifier par divtext directement

Reply

Marsh Posté le 17-10-2007 à 15:04:17    

ah ouééééé, ptin l'étourderie !
Et dire que ça fait bientôt une semaine que je me casse les dents dessus, mais alors chameau !!

Reply

Marsh Posté le 17-10-2007 à 15:05:52    

cmt on fait pour mettre le "[RESOLU]" ??

Reply

Marsh Posté le 17-10-2007 à 15:07:08    

Edite le titre...

Reply

Marsh Posté le 17-10-2007 à 15:09:25    

Edite le premier topics, t'aura le titre

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed