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 :

Relever la position d'un élément


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 92
    Points : 53
    Points
    53
    Par défaut Relever la position d'un élément
    Bonjour,

    Je cherche à relever la position d'un champ texte afin de lui coller une liste de suggestion (via Ajax).

    Le souci est que ce code (voyant que le mien ne marchait pas, j'en ai pompé d'autres qui ont montré le même problème) provenant de site ...

    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
     
    function testtop(r)
    {
      return calculeOffset(r,"offsetTop");
    }
     
    function calculeOffset(element,attr)
    {
      var offset=0;
      while(element)
      {
        offset+=element[attr];
        element=element.offsetParent;
     }
      return offset;
    }
    invariablement, me retourne NaN.

    voici ma page de test:
    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
     
    <body>
    	<tr>
        	<td><input type="text" id="te" name="tex"  /></td>
        </tr>
        <tr>
        	<td><input type="button" id="lb" name="sup_lb" value="Supprimer" class="btsup" onclick="alert(testtop('te'))" >
    		</td>
          </tr>
     
        </form>	
    	</table>
        </div>
     
     
    </body>
    Avez-vous une idée ?

    Christian

  2. #2
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    <div id="te"><input type="text" name="tex" /></div>

  3. #3
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    de plus pour trouver la vrai position d'un élément :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function findPos(obj){
    		//position x / y de l'objet
    	    var x = obj.offsetLeft || 0;
    	    var y = obj.offsetTop || 0;
    		//tant qu'il y a un parent, on ajoute la position de son parent
    	    while (obj = obj.offsetParent) {
    	        x += obj.offsetLeft
    	        y += obj.offsetTop
    	    }
    		//Ici on retour x ou y ( ou les deux dans un tableau ou un hash
    	    return new Array(x,y);
    	}
    renvoit un tableau contenant x et y
    est ton ami fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes

    Premier ministre du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts )

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 92
    Points : 53
    Points
    53
    Par défaut
    Merci pour vos réponse.

    Avec le dernier code et en ajoutant l'id dans le div. J'obtiens invariablement 0,0. C'est à dire ce que j'avais comme résultat dans mon tout premier code.

    Si votre code fonctionne chez vous pourquoi cela ne veut il pas le faire chez moi. Le code de ma page HTML de teste est vraiment tel que je l'ai laissé plus haut.

    Alors y a t-il quelque chose qui ne vas pas ? Est-ce le tableau qui n'est pas géré ? Je lui ai également donné un id.

    De plus il faut savoir que dans ma version définitive. Le champ qui fera apparaître la liste de suggestion fait partit d'un calque avec un scroll. Ce qui veut dire que ce champ (contenu dans un tableau) va bouger de position ) à l'écran...

    Christian.

  5. #5
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    est ce normal ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    	<tr>
        	<td><input type="text" id="te" name="tex"  /></td>
        </tr>
        <tr>
        	<td><input type="button" id="lb" name="sup_lb" value="Supprimer" class="btsup" onclick="alert(testtop('te'))" >
    		</td>
          </tr>
     
        </form>	
    	</table>
        </div>
    les balise ne sont pas ouverte ... donc pas d'élément parent a trouver ^^
    est ton ami fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes

    Premier ministre du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts )

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 92
    Points : 53
    Points
    53
    Par défaut
    J'ai trouvé. Merci.


    Christian.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Position d'un élément
    Par MxPx_23 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/05/2006, 19h49
  2. [SQL] Récupération de la position d'un élément
    Par Kerod dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 16/05/2006, 02h55
  3. position d'un élément dans une liste
    Par john491 dans le forum Général Python
    Réponses: 8
    Dernier message: 05/05/2006, 13h13
  4. [Javascript] Récupérer la position d'un élément
    Par djflex68 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/04/2006, 10h13
  5. [XPath] Position d'un élément
    Par ovh dans le forum XSL/XSLT/XPATH
    Réponses: 11
    Dernier message: 07/04/2003, 15h26

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