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 :

Deux compteurs sur la même page


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 171
    Points : 64
    Points
    64
    Par défaut Deux compteurs sur la même page
    Bonjour,

    J'ai 2 compteurs sur la même page, je voulais cliquer sur le premier et s'incrémente, et sur le deuxième et s'incrémente aussi, mais dans mon cas, je clique sur le premier, il s'incrémente jusqu'à par exemple (3), je clique sur le deuxième et continue le compte à partir de 3 et non à partir de 0; voici un DEMO et le code:

    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
    function counter(){
     
    var maxCount = [5, 10];
    var string = ['Done', 'Well Done'];
     
     
    var count = 0;
    $(".counter").click(function(){
    	count++;
     
      var getID = $(this).attr('id');
      //alert(getID);
     
      var setPlace = 'disp'+getID;
        //console.log('count '+count);
        var indexKey = maxCount.indexOf(count);
        console.log('index '+indexKey);
     
        if(indexKey >=0){
        var msg = string[indexKey];
     
        console.log(msg);
     
        }
     
    $("#"+setPlace).html(count);
    });
    }
     
    //counter('dispCounter', 10);
    counter();
    HTML:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <a class="counter" id="Counter1">Counter1</a>
    <div id="dispCounter1"></div>
     
    <br />
     
    <a class="counter" id="Counter2">Counter2</a>
    <div id="dispCounter2"></div>

    Merci a vous

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2015
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2015
    Messages : 107
    Points : 139
    Points
    139
    Par défaut
    Salut,

    Dans ton code, tu n'as qu'une seule variable "count" utilisé par les 2 compteurs.

    Si tu veux 2 compteurs différents, il faut 2 variables. Une autre solution, qui ne serait pas la bonne selon moi, serait de récupérer qui est dans la div que laquelle tu cliques.

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 171
    Points : 64
    Points
    64
    Par défaut
    Citation Envoyé par Darkauron Voir le message
    Dans ton code, tu n'as qu'une seule variable "count" utilisé par les 2 compteurs.
    J'ai essayé avec switch, et cela reste toujours bloqué, DEMO:

    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
    function counter(){
     
    var count1 = 0;
    var count2 = 0;
     
    $(".counter").click(function(){
     
      var getID = $(this).attr('id');
      //alert(getID);
     
      switch(getID){
      	case 'LaIlaha':
        	//var count1 = 0;
          var count = count1;
          count++;
          var maxCount = [5, 8];
          var string = ['ilaha1', 'ilaha_1'];
        break;
     
        case 'NabiSalat':
        	//var count2 = 0;
          var count = count2;
          count++;
        	var maxCount = [2, 5];
          var string = ['salat1', 'salat2'];
        break;
      }
     
      var setPlace = $(this).next().attr('id');
      console.log(setPlace);
     
      var indexKey = maxCount.indexOf(count);
      console.log('index '+indexKey);
     
      if(indexKey >=0){
      var msg = string[indexKey];
     
      console.log(msg);
     
        }
     
    $("#"+setPlace).html(count);
    });
    }
     
    //counter('dispCounter', 10);
    counter();
    HTML:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <a class="counter" id="LaIlaha" name="0">Counter1</a>
    <div id="dispCounter1"></div>
     
    <br />
     
    <a class="counter" id="NabiSalat">Counter2</a>
    <div id="dispCounter2"></div>

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 069
    Points : 44 675
    Points
    44 675
    Par défaut
    Bonjour,
    il me semble qu'il y a plus simple en récupérant le contenu de la <div> et en incrémentant sa valeur, ce qui pourrait donner d'après ton code exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var oDest = document.getElementById(setPlace);
    var count = (parseInt(oDest.textContent) || 0) +1;
    oDest.textContent = count;

  5. #5
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 171
    Points : 64
    Points
    64
    Par défaut
    Citation Envoyé par Darkauron Voir le message
    Si tu veux 2 compteurs différents, il faut 2 variables.
    Avez vous une idée?

  6. #6
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 171
    Points : 64
    Points
    64
    Par défaut
    Citation Envoyé par NoSmoking Voir le message
    Bonjour,
    il me semble qu'il y a plus simple en récupérant le contenu de la <div> et en incrémentant sa valeur, ce qui pourrait donner d'après ton code exemple
    ...
    J'essais de mettre en place la solution de Darkauron

  7. #7
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2015
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2015
    Messages : 107
    Points : 139
    Points
    139
    Par défaut
    Salut,

    En déroulant tes scripts, tu devrais te rendre compte de ton problème.

    En suivant le script :
    Je clique sur "Counter1".
    count prend la valeur count1.
    J'incrémente count.
    J'affiche count.

    Résultat des valeurs : count vaut 1, et count1 vaut ... 0.

    Tu ne mets pas à jour count1 et count2, ton compteur repart toujours de 0.

  8. #8
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 171
    Points : 64
    Points
    64
    Par défaut
    Citation Envoyé par Darkauron Voir le message
    Tu ne mets pas à jour count1 et count2, ton compteur repart toujours de 0.
    Ah oui, j'ai oublié d'incrémenter count1 et count2, j'ai copié collé le code sans modifier les valeurs d'incrémentation, voici la DEMO et le code final:

    HTML:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <a class="counter" id="LaIlaha" name="0">Counter1</a>
    <div id="dispCounter1">0</div>
     
    <br />
     
    <a class="counter" id="NabiSalat">Counter2</a>
    <div id="dispCounter2">0</div>

    jQuery:
    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
    function counter(){
     
    var count1 = 1;
    var count2 = 1;
     
    $(".counter").click(function(){
     
      var getID = $(this).attr('id');
      //alert(getID);
     
      switch(getID){
      	case 'LaIlaha':
        	//var count1 = 0;
          var count = count1;
          count1++;
          var maxCount = [5, 8];
          var string = ['ilaha1', 'ilaha_1'];
        break;
     
        case 'NabiSalat':
        	//var count2 = 0;
          var count = count2;
          count2++;
        	var maxCount = [2, 5];
          var string = ['salat1', 'salat2'];
        break;
      }
     
      var setPlace = $(this).next().attr('id');
      console.log(setPlace);
     
      var indexKey = maxCount.indexOf(count);
      console.log('index '+indexKey);
     
      if(indexKey >=0){
      var msg = string[indexKey];
     
      console.log(msg);
     
        }
     
    $("#"+setPlace).html(count);
    });
    }
     
    //counter('dispCounter', 10);
    counter();
    Merci a vous tous

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

Discussions similaires

  1. [WD14] deux états sur une même page
    Par antalata dans le forum WinDev
    Réponses: 3
    Dernier message: 16/04/2012, 16h22
  2. [Spring MVC] Deux formulaires sur une même page
    Par djodjo dans le forum Spring Web
    Réponses: 1
    Dernier message: 20/10/2008, 09h52
  3. [AJAX] deux autocomplétion sur une même page
    Par Swapyyy dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 10/07/2008, 15h45
  4. [MooTools] Deux évenement sur une même page
    Par enima83 dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 01/07/2008, 17h31
  5. [JpGraph] Placer deux graphes sur une même page
    Par am.adnane dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 12/05/2007, 01h04

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