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 :

Passer un ID � une fonction javascript


Sujet :

JavaScript

  1. #1
    Membre exp�riment�
    Avatar de beegees
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par d�faut Passer un ID � une fonction javascript
    Bonjour tout le monde,

    J'ai un tableau compos� de TR et de TD.

    Les TD ont chacun un ID unique du genre :


    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <td id="AM_'.$numero_jour.'_'.$_POST['LeMois'].'_'.$_POST['Lannee'].'" onmousedown="menuContextuel(event, \'menucontextuel1\');"> &nbsp; </td>

    J'essaie de passer l'ID � une fonction javascript.

    this.id ne fonctionne pas car c'est l'ID de mon menu qui est pass� � la fonction et non l'id de ma TD.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    <div id="menucontextuel1" class="menucontextuel">
      		<ul id="test">
      			<li><em>Menu Personnalisé</em></li>
      			<li><a href="" id="test" onclick="hideMenu(); occupe(this.id); return false;">Occup&eacute;</a></li>
      			<li><a href="" onclick="hideMenu(); return false;">Libre</a></li>
      		</ul>
      	</div>
    ici, il passe "test" par exemple :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <li><a href="" id="test" onclick="hideMenu(); occupe(this.id); return false;">Occup&eacute;</a></li>
    Je devrais peut �tre r�cup�rer l'ID du TD lorsqu'il obtient le focus ou lorsuqe l'on clic dessus.


    Merci d'avance.

    beegees

  2. #2
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    D�tails du profil
    Informations personnelles :
    �ge : 57

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par d�faut
    Salut,

    Ton probl�me est logique: le this fait r�f�rence � l'�l�ment du DOM pour lequel le code s'ex�cute, et non un de ses parents ou autre.
    A toi de retrouver l'id de ta TD � partir de l'�l�ment concern� (ta balise A ici) , par exemple en cherchant dans l'arborescence des "anc�tres" avec une boucle du style:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    //node correspond � ton �l�ment this
    while (node.nodeName != 'TD' && node!=null) {
        node = node.parentNode;
    }
    A tester,

    ERE

  3. #3
    Membre exp�riment�

    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Mai 2009
    Messages
    215
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 215
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    <div id="menucontextuel1" class="menucontextuel">
      		<ul id="test">
      			<li><em>Menu Personnalisé</em></li>
      			<li><a href="" id="test" onclick="hideMenu(); occupe(this.id); return false;">Occup&eacute;</a></li>
      			<li><a href="" onclick="hideMenu(); return false;">Libre</a></li>
      		</ul>
      	</div>
    Je vois une grosse erreur dans le code ci-dessus : la r�gle en mati�re d'ID est qu'ils soient uniques, utilis�s une seule fois dans une page html. Alors quand je vois "test" sur le ul et sur un lien dans un des li...

    Et dans cet exemple je trouve logique que l'id pass� soit "test", puisque c'est bien l'id du lien sur lequel se trouve l'appel � la fonction

  4. #4
    Membre exp�riment�
    Avatar de beegees
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par d�faut
    Citation Envoy� par emmanuel.remy Voir le message
    Salut,

    Ton probl�me est logique: le this fait r�f�rence � l'�l�ment du DOM pour lequel le code s'ex�cute, et non un de ses parents ou autre.
    A toi de retrouver l'id de ta TD � partir de l'�l�ment concern� (ta balise A ici) , par exemple en cherchant dans l'arborescence des "anc�tres" avec une boucle du style:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    //node correspond � ton �l�ment this
    while (node.nodeName != 'TD' && node!=null) {
        node = node.parentNode;
    }
    A tester,

    Salut,

    Merci pour ta r�ponse.

    J'ai finalement trouv� une autre solution.

    J'envoie un param�tre suppl�mentaire sur le onmouseover.

    Arriv� dans la fonction, j'appelle une autre fonction js (AJAX).

    Cela r�gle donc mon probl�me mais ton code pourrait me servir dans le future.

    Merci encore pour ton aide.

    beegees

    ERE
    Citation Envoy� par michel.bosseaux Voir le message
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    <div id="menucontextuel1" class="menucontextuel">
      		<ul id="test">
      			<li><em>Menu Personnalisé</em></li>
      			<li><a href="" id="test" onclick="hideMenu(); occupe(this.id); return false;">Occup&eacute;</a></li>
      			<li><a href="" onclick="hideMenu(); return false;">Libre</a></li>
      		</ul>
      	</div>
    Je vois une grosse erreur dans le code ci-dessus : la r�gle en mati�re d'ID est qu'ils soient uniques, utilis�s une seule fois dans une page html. Alors quand je vois "test" sur le ul et sur un lien dans un des li...
    Oui en effet, j'avais mis �a pour les testes.

    Et dans cet exemple je trouve logique que l'id pass� soit "test", puisque c'est bien l'id du lien sur lequel se trouve l'appel � la fonction
    Je trouve cela logique aussi.

    Merci � vous deux pour vos r�ponses.

    beegees

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. passer les param�tres � une fonction javascript
    Par phenix1988 dans le forum G�n�ral JavaScript
    R�ponses: 4
    Dernier message: 01/01/2012, 23h19
  2. comment passer un tableau � une fonction javascript
    Par beegees dans le forum G�n�ral JavaScript
    R�ponses: 3
    Dernier message: 08/03/2009, 19h48
  3. passer une fonction javascript dans un bouton
    Par zthibaut dans le forum Flash
    R�ponses: 3
    Dernier message: 06/11/2006, 12h37
  4. R�ponses: 3
    Dernier message: 26/06/2006, 13h48
  5. R�ponses: 11
    Dernier message: 10/05/2004, 10h49

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