IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

propriet� d'une classe 'undefined'


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    29
    D�tails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2006
    Messages : 29
    Par d�faut propriet� d'une classe 'undefined'
    hello,
    je d�veloppe un petit outil pour ka-map (exemple ici : http://maps.dmsolutions.ca/demo/us_streets/iframe.html)afin de faire des requetes lorsque ma souris s'arrete au dessus d'un point un certain temps. Le probl�me se situe dans la fonction mouseStop : le "alert(this.coordX)" me renvoie "undefined", tout comme "alert(x)". Pourtant en testant dans la fonction mouseMove avec un "alert(this.coordX)" (en bougeant un minimum la souris au dessus du div...), j'ai quelque chose de valable.
    Quelqu'un saurait ou se trouve le probl�me ? merci

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    // A tool allowing to get info of point interests under
    // mouse cursor on mouse stop
    var queryInfos = function(oKaMap, szID, delay) {
        this.kaMap = oKaMap;
        this.name = 'queryInfos';
        this.chrono = null;
        this.coordX = "";
        this.coordY = "";
        this.delay = delay;
        this.mouseStopped = false;
        this.bInfoTool = true;
        this.mouseStopped = false;
     
        // héritage des mouse functions de kaTool
        for (var p in kaTool.prototype){
            if (!queryInfos.prototype[p]){
                queryInfos.prototype[p]= kaTool.prototype[p];
            }
        }
    }
     
     
    queryInfos.prototype.onmousemove = function(e){
    	if (navigator.appName!="Microsoft Internet Explorer"){
    		this.coordX = e.pageX;
    		this.coordY = e.pageY;	
    	}
    	else if(document.documentElement.clientWidth > 0){
    		this.coordX = event.x+document.documentElement.scrollLeft;
    		this.coordY = event.y+document.documentElement.scrollTop;
    	}
    	else{
    		this.coordX = event.offsetX;
    		this.coordY = event.offsetY;
    	}
     
    	if(this.chrono != null){
    		clearTimeout(this.chrono); //reset du chrono
    	}
     
    	var adjCoords = this.adjustPixPosition(this.coordX, this.coordY);
    	var p = this.kaMap.pixToGeo(adjCoords[0], adjCoords[1]); 
    	this.coordX = p[0];
    	this.coordY = p[1];
     
            //ici "alert(this.coordX)" me renvoie une coordonnée valable
     
    	if(this.mouseStopped == false){
    		this.chrono = setTimeout("queryInfos.prototype.mouseStop(this.coordX, this.coordY)", this.delay);
    	}
    }
     
     
    queryInfos.prototype.mouseStop = function(x,y){
    	alert(x);  // renvoie undefined
    	alert(this.coordX);  // renvoie undefined
    	clearTimeout(this.chrono);
    	this.mouseStopped = true;
    	//this.callFct(x,y);
    	this.mouseStopped = false;
    }

  2. #2
    Expert confirm�
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Ao�t 2003
    Messages
    3 684
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activit� : danseur

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 3 684
    Par d�faut
    dans ton timer, il serait peut-�tre bon de remplacer
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    queryInfos.prototype.mouseStop
    par

  3. #3
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 888
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 888
    Par d�faut
    Salut,

    Essaie plutot ceci :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    "queryInfos.prototype.mouseStop(" + this.coordX + ", " + this.coordY + ")"
    au lieu de

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    "queryInfos.prototype.mouseStop(this.coordX, this.coordY)"
    Dans ton setTimeout.

    A+

  4. #4
    Expert confirm�
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Ao�t 2003
    Messages
    3 684
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activit� : danseur

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 3 684
    Par d�faut
    ou encore ne pas passer d'arguments et r�cup�rer directement
    this.coordX et this.coordY dans la m�thode mouseStop

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    29
    D�tails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2006
    Messages : 29
    Par d�faut
    javaTwister :
    - du cot� de "queryInfos.prototype.mouseStop", y'a pas de probl�me, �a marche comme �a (erreur si je change par "queryInfos.mouseStop")
    - et si tu regarde j'essaie deja d'acceder directement � this.coordX dans mouseStop... sans succ�s, il est justement la le probl�me

    KiLVaiDeN :
    - j'ai essay� ta methode, mais d�s que je bouge la souris au dessus du div le alert apparait tout de suite (delay non respect�), et au moindre mouvement de souris une autre s'ajoute par dessus...

    Non mais ce que j'aimerais faire c'est acc�der directement � this.coordX dans mouseStop : jcomprends juste pas pourquoi elle est undefined dans cette fonction. Passer les argument dans mon setTimeout est la m�thode de secours (et encore, elle est foireuse pour le moment...)

  6. #6
    Expert confirm�
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Ao�t 2003
    Messages
    3 684
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activit� : danseur

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 3 684
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    queryInfos.prototype.onmousemove
    je comprends mal: onmousemove est une m�thode de la classe kaTool, c'est �a?

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    29
    D�tails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2006
    Messages : 29
    Par d�faut
    oui, queryInfos.prototype.onmousemove est h�rit�e de kaTool. Elle est appel�e chaque fois que le souris bouge au dessus du div

  8. #8
    Expert confirm�
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Ao�t 2003
    Messages
    3 684
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activit� : danseur

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 3 684
    Par d�faut
    et �a ne pose pas probl�me de nommer une m�thode personnelle comme une m�thode native?

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    29
    D�tails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2006
    Messages : 29
    Par d�faut
    non aucun, elle est "personnelle" mais h�rit�e grace � la boucle :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
      for (var p in kaTool.prototype){
            if (!queryInfos.prototype[p]){
                queryInfos.prototype[p]= kaTool.prototype[p];
            }
        }
    de ce cot� je sais qu'il n'y pas de probl�me, je l'ai deja fait dans de nombreuse autres classes.

Discussions similaires

  1. R�ponses: 2
    Dernier message: 03/11/2014, 19h44
  2. [D�butant] Binding de propriete comprenant une classe comme parametre
    Par Gualino dans le forum Windows Forms
    R�ponses: 1
    Dernier message: 09/02/2014, 12h12
  3. Ajouter propriet� a une classe existante.
    Par GMibb dans le forum G�n�ral Python
    R�ponses: 3
    Dernier message: 09/12/2010, 23h31
  4. For-in pour lister les proprietes d'une classe
    Par mihaispr dans le forum ActionScript 1 & ActionScript 2
    R�ponses: 1
    Dernier message: 08/09/2009, 17h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo