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 :

Ajouter du code à un OnClick existant


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 152
    Points : 80
    Points
    80
    Par défaut Ajouter du code à un OnClick existant
    Bonjour à tous,

    Je désire ajouter du code à un OnClick existant.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <div id='a' onClick="alert(1);"></div>
     
    $('a').onclick=function(){ alert(2);};
     
    //un peu plus loin 
     
    $('a').onclick=function(){ alert(3);};

    Et évidemment au final je veux que lorsque je clic sur l'élément cela fasse les 3 alerts à la suite.

    Résultat souhaité :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $('a').onclick=function(){ 
    alert(1);
    alert(2);
    alert(3);
    };


    J'ai déja fait un fonction qui reçoit $('a').onclick et qui nettoie pour ne laisser que le code à l'intérieur. Cette fonction s'appel dynCleanFct(str);


    Donc pour le moment j'en suis là

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <div id='a' onClick="alert(1);"></div>
     
    var code=dynCleanFct($('a').onclick);
     
    $('a').onclick=function(){ 
    //il faut ajouter le contenu de code
    alert(2);
    };

    Le problème est que je ne sais pas comment ajouter le contenu de code dans


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $('a').onclick=function(){ 
    "+code+"
    alert(2);
    };
    ne fonctionne pas vu que ce n'est pas un string à la base.

    Une idée ?


    De manière plus générale, comment intégrer du code javascript contenu dans une variable à une déclaration de fonction dynamique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    var code='alert(1);'
     
    $('a').onclick=function(){ 
    "+code+"
    alert(2);
    };

    Merci,


    Vodnok,

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var oldClic = $('a').onclick;
    $('a').onclick = function(){
    //Code de la nouvelle fonction
    oldClic;
    }
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 152
    Points : 80
    Points
    80
    Par défaut
    Non ca ne marche pas.


    Il ne remplace pas oldClic par son contenu.


    Au lieu d'avoir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    fonction(){
    alert(1);
    alert(2);
    }
    J'ai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    fonction(){
    oldClic;
    alert(2);
    }
    Et donc au final, il ne fait que alert(2)

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 152
    Points : 80
    Points
    80
    Par défaut
    Je viens de lire cet article http://www.howtocreate.co.uk/tutoria...ript/domevents


    Il y a la possibilité de passer par addEventListener mais j'aurais préféré la solution en dure dans le onclick.

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Hum...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var oldClic = $('a').onclick;
    $('a').onclick = function(){
    //Code de la nouvelle fonction
    oldClic();
    }
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 152
    Points : 80
    Points
    80
    Par défaut
    Ca fonctionne avec le ();

    Mais... si je le fais deux fois d'affilée avec alert(2) puis alert(3), il me met too much recursion...


    Je vais encore cruser, merci pour ton aide.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 152
    Points : 80
    Points
    80
    Par défaut
    J'ai géré le problème avec les eventlistener. Ca m'ennuie un peu car je dois souvent retirer pour remmettre un event sur un élément pour éviter de faire deux fois le traitement. C'est pourquoi je voulais passer par le onclick qu'il suffit de mettre à blanc pour retirer tous les évenements lié au click.


    Enfin soit, j'y suis parvenus.


    Merci pour l'aide

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

Discussions similaires

  1. [Joomla!] ajouter du code lors de l'onClick sur menuItem
    Par Zineb1987_UNI dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 23/11/2010, 13h17
  2. Réponses: 2
    Dernier message: 25/06/2008, 09h58
  3. Ajout de code CSS dans un site existant
    Par nico93100 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 12/06/2007, 21h33
  4. Ajouter du code HTML à la volé.
    Par CynO dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/11/2005, 11h12
  5. Ajouter le multilinguisme à un logiciel existant
    Par [DreaMs] dans le forum Langage
    Réponses: 4
    Dernier message: 24/05/2005, 18h41

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