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 :

Fonction avec param�tre sur onclick


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    159
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 159
    Par d�faut Fonction avec param�tre sur onclick
    Bonjour � tous,

    Je savais d�j� que l'on en pouvais pas assigner de fonction avec param�tre sur les onclick d'�l�ments HTML de cette fa�on :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    monElement.onclick = maFonction(param);
    Ce qui execute la fonction.

    J'ai donc cherch� et vu que l'on pouvais faire comme �a :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    monElement.onclick = function() { maFonction(param); }
    Ce qui marche pour un param�tre fixe, mais qui se g�te lorsque l'on veut faire changer le param�tre en fonction de l'�lement sur lequel on applique le onclick.

    Voici ma situation :
    Je poss�de un tableau d'�lement HTML.
    Je poss�de �galement une fonction qui prend en param�tre l'indice de l'�lement dans ce tableau.
    Je voudrais, pour assigner � tous mes �lements de mon tableau une fonction onclick faire quelque chose dans le genre :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    for(i in monTableauDElement)
    {
       monTableauDElement[i].onclick = function() { maFonction(i); };
    }
    Ce code fonctionne, pas de bug � l'execution, mais pas comme je le veux.
    En effet, la valeur de i changeant tout au long de la boucle, tous mes �lements finissent par appeler ma fonction avec comme param�tre le i le plus grand.

    En pratique au lieu d'avoir �a (r�sultat attendu) :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    monTableauDElement[0] = function() { maFonction(0); };
    monTableauDElement[1] = function() { maFonction(1); };
    monTableauDElement[2] = function() { maFonction(2); };
    monTableauDElement[3] = function() { maFonction(3); };
    J'ai :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    monTableauDElement[0] = function() { maFonction(3); };
    monTableauDElement[1] = function() { maFonction(3); };
    monTableauDElement[2] = function() { maFonction(3); };
    monTableauDElement[3] = function() { maFonction(3); };
    J'ai essay� plein de bidouilles avec des eval, mais impossible de garder fixe mon i pour chacun de mes �lements.

    Voila tout mon probl�me, j'esp�re avoir �t� le plus clair possible. Si vous ne comprenez pas un point faites le moi savoir.
    Si quelqun � une r�ponse ou un d�but de piste je suis preneur !!

    Merci d'avance.

  2. #2
    Expert �minent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par d�faut
    Bonjour,
    et la FAQ ?



    A+

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    159
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 159
    Par d�faut
    Merci beaucoup et d�sol� de n'avoir aps pris le temps de lire la FAQ.

    En m�me temps, le probl�me me semblait assez sp�cifique et je n'avais rien trouv� dessus auparavent.

  4. #4
    Expert �minent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par d�faut
    Citation Envoy� par Difr�91 Voir le message
    Merci beaucoup et d�sol� de n'avoir aps pris le temps de lire la FAQ.
    Pas de probl�me : il �tait cach� tout en bas de la liste

    A+

  5. #5
    Mod�rateur
    Avatar de Flaburgan
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Avril 2010
    Messages
    1 229
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �lectronique et micro-�lectronique

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 229
    Par d�faut
    Pour ceux qui retombent la dessus comme moi, l'article en question de la FAQ est le suivant : http://javascript.developpez.com/faq...lick.dynamique

    (�a peut faire gagner de pr�cieuses minutes...)

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

Discussions similaires

  1. Modifier onclick dynamiquement pour passer une fonction avec param�tres
    Par denisosteo dans le forum G�n�ral JavaScript
    R�ponses: 6
    Dernier message: 02/01/2014, 12h38
  2. [MySQL] fonction compteur de visite avec bdd sur onclick
    Par akara dans le forum PHP & Base de donn�es
    R�ponses: 1
    Dernier message: 12/06/2007, 14h13
  3. [Function]Appel de fonction avec param�tre
    Par julienOriano dans le forum G�n�ral JavaScript
    R�ponses: 3
    Dernier message: 02/06/2006, 07h48
  4. histoire de fonction avec probl�me sur arguments
    Par b�b� dans le forum Langage
    R�ponses: 5
    Dernier message: 07/01/2006, 11h29
  5. R�ponses: 4
    Dernier message: 11/09/2005, 01h21

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