Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1544 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Javascript et POO

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Javascript et POO

n°1518056
Alkyd87
Posté le 22-02-2007 à 02:08:55  profilanswer
 

Bonjour,  
j'ai un problème avec la POO et Javascript... Je chercher à développer une classe qui me permettra ensuite de déplacer librement un élément HTML donné en paramètres.
 
La classe DragElement avec le constructeur et qq méthodes :

Code :
  1. // Constructeur
  2. var DragElement = function(elem)
  3. {
  4. this.element = elem;
  5. this.drag = false;
  6. this.mouseX = 0;
  7. this.mouseY = 0;
  8. this.element.onmousemove = this.move;
  9. this.element.onmousedown = this.dragStart;
  10. this.element.onmouseup = this.dragStop;
  11. }
  12. // Quand l'utilisateur clique sur l'élément, maintient le clic et bouge la souris pour effectuer le déplacement
  13. DragElement.prototype.move = function()
  14. {
  15.              // A faire
  16. }
  17. // Quand l'utilisateur clique sur l'élément (associé à l'évènement onmousedown)
  18. DragElement.prototype.dragStart = function()
  19. {
  20. alert(this.element);
  21. this.drag = true;
  22. this.mouseX = getCoordsMouseX();
  23. this.mouseY = getCoordsMouseY();
  24. }
  25. // Quand l'utilisateur relâche la souris (associé à l'év-ènement onmouseout)
  26. DragElement.prototype.dragStop = function()
  27. {
  28. this.drag = false;
  29. }
  30. // Positionne l'élément HTML
  31. DragElement.prototype.positionner = function(x, y)
  32. {
  33. this.element.style.top = y + 'px';
  34. this.element.style.left = x + 'px';
  35. }
  36. // Affiche l'élément HTML (par défaut, il ne l'est pas)
  37. DragElement.prototype.afficher = function()
  38. {
  39. this.element.style.display = 'block';
  40. }
  41. // N'affiche plus l'élément HTML à l'écran
  42. DragElement.prototype.fermer = function()
  43. {
  44. this.drag = false;
  45. this.element.style.display = 'none';
  46. }


 
Mon code HTML :  

Code :
  1. [...]
  2. <div id="box">
  3.     // trucs
  4. </div>


 
Et le code JS pour rendre l'élément 'box' draggable :

Code :
  1. var div = document.getElementById('box');
  2. box = new DragElement(div);
  3. box.afficher();
  4. box.positionner(100, 100);


 
Alors voilà, quand le constructeur est lancé, l'élément div est mémorisé dans this.element.  
 
Et le problème que je rencontre, c'est que quand je clique sur ma box (évènement onmousedown appelé, donc méthode dragStart() appelée en suivant le constructeur), this.element est 'undefined'. Il en va de même avec onmouseup et onmouseover :(
 
J'ai l'impression que les valeurs des propriétés ne sont pas gardées quand on affecte une fonction ou méthode par callback...
 
Quelqu'un peut'il m'éclairer sur ce problème ?  
 
Merci.

mood
Publicité
Posté le 22-02-2007 à 02:08:55  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Javascript et POO

 

Sujets relatifs
javascript et IE[Code] Horloge Analogique en HTML/Javascript
Requête sql + javascript[javascript] parent.location fonctionne pas bien
User Javascript et CSSjavascript : recherche de script (urgent)
Pb javascript focus() sur un element en display:noneFonction javascript adapter écran/page
Ajax : exécution d'un code javascript dans la page appelée , IE grrr[ActionScript & Javascript] SetVariable sous Flash 9
Plus de sujets relatifs à : Javascript et POO


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR