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 :

modifier l'action onclick ( avec parametre )


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 22
    Points : 19
    Points
    19
    Par défaut modifier l'action onclick ( avec parametre )
    Bonjour à tous,

    je veux faire en sorte que quand on clic sur un element, ca lance une action, et cette action va modifier l'action onclick de façon a ce quand on clique a nouveau sur l'élement, il fasse autre chose...

    Or mon élement a un paramtre ( deroulement(elementClique) ) et je l'apelle par onclick=deroulement(this);

    pour modifier, je fais elementClique.onclick = enroulement
    et forcément mon enroulement lui, modifie aussi l'élement pour faire un deroulement, mais sans param sa coince ....

    ensuite quand je fais elementClique.onclick = enroulement(this) par exemple, il appelle ma fonction -_- ... donc comment pouvoir lui dire de remplacer mon deroulement(this) par un enroulement(this) ?




    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
    <html>
       <head>
          <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
          <title>Brainstorming</title>
          <link rel="stylesheet" type="text/css" href="brainstorming.css" />
          <!-- ici on met les include de code javascript -->
          <script type="text/javascript" src="ajax.js"> </script>
          <script type="text/javascript" src="brainstorming.js"> </script>
     
       </head>
    <body>
     
    <span id="idee0" onclick="deroulement(this);" ><img src="img/fleche_d.gif" alt="fleche_droite"  /> Idée 1 <br /></span>
    <span id="idee1" onclick="deroulement(this);"><img src="img/fleche_d.gif" alt="fleche_droite" /> Idée 2 <br /></span>
    <span id="idee2" onclick="deroulement(this);"><img src="img/fleche_d.gif" alt="fleche_droite" /> Idée 3 <br /></span>
    </body>
    </html>




    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
    63
    64
    65
    66
    67
    68
    function deroulement(elementClique) {
    // on met a jour la fleche
       var eleModif = elementClique.firstChild;
       eleModif.setAttribute('src','img/fleche_b.gif');
       elementClique.onclick = enroulement;
    // et on envoie la requete   
       var url = "mod_brainstorming.php";
       url = url + "?id=" + elementClique.getAttribute("id") + "&factice=" + new Date().getTime();
       requete.open("GET", url, true);
       requete.onreadystatechange = actualiserPage;
       requete.send(null);
     
    }
     
    function enroulement() {
    elementClique = this;
    // on met a jour la fleche
       var eleModif = elementClique.firstChild;
       eleModif.setAttribute('src','img/fleche_d.gif');
       elementClique.onclick = deroulement;
     
    elementClique.removeChild(elementClique.childNodes[3]); // on delete le span qui contenait tout !
     
     
     
    }
     
    function actualiserPage() {
      if (requete.readyState == 4) {
        if (requete.status == 200) {
          /* Obtenir la réponse du serveur */
          var docXml = requete.responseXML;
          /* on créer les tableaux et on enregistre les réponses */
          var nbr = docXml.getElementsByTagName('nb')[0].firstChild.nodeValue;
          var id = docXml.getElementsByTagName('id')[0].firstChild.nodeValue;
          var tabPseudo = Array();
          var tabCom = Array();
          var tabType = Array();
          // on recupere l'identifiant de la zone a modif ( si on a idee0, on recuperer avec substring le 0 )
     
          var ElemModif = document.getElementsByTagName('span')[id.substring(id.length-1,id.length)];
          for(i=0; i< nbr; i++) 
          {
          tabPseudo[i] = docXml.getElementsByTagName('pseudo')[i].firstChild.nodeValue;
          tabCom[i] = docXml.getElementsByTagName('commentaire')[i].firstChild.nodeValue;
          tabType[i] = docXml.getElementsByTagName('type')[i].firstChild.nodeValue;
          }
     
        /* on met a jour le DOM */
        var nouvElePseudo;
        var nouvEleCommentaire;
        var EleMere = document.createElement("span") // on creer un span pour pouvoir par la suite delete plus facilement
        ElemModif.appendChild(EleMere);
             // on crée d'abord les élements et on les insère
         for(i=0;i<nbr;i++) {
             nouvElePseudo = document.createTextNode(tabPseudo[i]);
             nouvEleCommentaire = document.createTextNode(tabCom[i]);
             EleMere.appendChild(nouvElePseudo);
             EleMere.appendChild(document.createElement("br"));
             EleMere.appendChild(nouvEleCommentaire);
             EleMere.appendChild(document.createElement("br"));
         }
     
     
        } else
          alert("Erreur ! Le statut de la requête est " + requete.status);
      }
    }
    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
     
    var requete = null;
    try {
      requete = new XMLHttpRequest();
    } catch (essaimicrosoft) {
      try {
        requete = new ActiveXObject("Msxml2.XMLHTTP");
      } catch (autremicrosoft) {
        try {
          requete = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (echec) {
          requete = null;
        }
      }
    }
     
    if (requete == null)
      alert("Impossible de créer l'objet requête!");

    merci d'avance

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 25
    Points : 32
    Points
    32
    Par défaut
    Bonjour,
    Ca devrait fonctionné...
    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
     
    <html>
    	<head>
    		<script language="JavaScript">
    			function fonction1(argument){
    				alert("action1:"+argument);
    				window.event.srcElement.onclickSv=window.event.srcElement.onclick;
    				window.event.srcElement.onclick=function(){fonction2("titi")};
    			}
    			function fonction2(argument){
    				alert("action2:"+argument);
    				window.event.srcElement.onclick=window.event.srcElement.onclickSv;
    			}
    		</script>
    	</head>
    	<body>
    		<input type=button onclick="fonction1('toto');">
    	</body>
    </html>
    --
    http://vgt.fr

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 22
    Points : 19
    Points
    19
    Par défaut
    ok ca marche merci !

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

Discussions similaires

  1. Appel une action avec parametre
    Par badreddine540 dans le forum JSF
    Réponses: 4
    Dernier message: 19/05/2009, 15h25
  2. [DOM] Modifier un onclick avec Javascript
    Par Sebastien14 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 19/01/2009, 11h01
  3. Modifier l'événement onClick même avec FAQ
    Par schnito dans le forum Général JavaScript
    Réponses: 21
    Dernier message: 28/09/2007, 12h52
  4. Evènement OnClick défini dynamiquement avec parametre
    Par GuiTwo dans le forum C++Builder
    Réponses: 2
    Dernier message: 18/12/2006, 11h58
  5. Requete Action avec parametre dans formulaire
    Par marie10 dans le forum IHM
    Réponses: 2
    Dernier message: 08/02/2006, 12h02

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