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 :

Alterner des images onclick


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Homme Profil pro
    Formateur
    Inscrit en
    Janvier 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Formateur
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2012
    Messages : 7
    Points : 4
    Points
    4
    Par défaut Alterner des images onclick
    Bonjour tout le monde je vous souhaite une excellente année 2012.
    Je viens de réaliser une petite application qui se voudrait pédagogique mais...
    Le principe est simple : quand on clique dans une case on affiche une croix pleine si on clique à nouveau on revient à l'état initial.
    Si on est pas trop exigeant on dira que cela fonctionne hors pour changer d'image on doit parfois cliquer plusieurs fois (notament quand on change de case) et cela ne me satisfait pas. Je ne m'explique pas ces "ratés de clic".
    Voici l'application en ligne :
    http://ericmaynadier.free.fr/coche/
    Voici 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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans nom</title>
    <link href="lesstyles.css" rel="stylesheet" type="text/css" />
     
    <script type="text/javascript">
    clic=0;
     
    function coche(id)
    {
    if (clic==0) 
      {
      clic=1;
      document.getElementById(id).src="croix.png"; 
      }
    else
      {
      clic=0;
      document.getElementById(id).src="vide.png"; 
      }
    }
    </script>
    </head>
     
    <body>
    <table>
      <tr>
        <td><img id="case1" src="vide.png" onclick="coche(id)" alt="case"></td>
        <td><img id="case2" src="vide.png" onclick="coche(id)" alt="case"/></td>
        <td><img id="case3" src="vide.png" onclick="coche(id)" alt="case"/></td>
      </tr>
      <tr>
        <td><img id="case4" src="vide.png"  onclick="coche(id)" alt="case"/></td>
        <td><img id="case5" src="vide.png"  onclick="coche(id)" alt="case"/></td>
        <td><img id="case6" src="vide.png"  onclick="coche(id)" alt="case"/></td>
      </tr>
    </table>
    </body>
    </html>
    Merci pour vos réponses et bonne journée
    Eric

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 643
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans nom</title>
    <link href="lesstyles.css" rel="stylesheet" type="text/css" />
     
    <script type="text/javascript">
     
    function coche(picid)
    {
    var picsrc=document.getElementById(picid).src;  
    document.getElementById(picid).src=(picsrc=="croix.png")?"vide.png":"croix.png"; 
    }
    </script>
    </head>
     
    <body>
    <table>
      <tr>
        <td><img id="case1" src="vide.png" onclick="coche(this.id)" alt="case"></td>
        <td><img id="case2" src="vide.png" onclick="coche(this.id)" alt="case"/></td>
        <td><img id="case3" src="vide.png" onclick="coche(this.id)" alt="case"/></td>
      </tr>
      <tr>
        <td><img id="case4" src="vide.png"  onclick="coche(this.id)" alt="case"/></td>
        <td><img id="case5" src="vide.png"  onclick="coche(this.id)" alt="case"/></td>
        <td><img id="case6" src="vide.png"  onclick="coche(this.id)" alt="case"/></td>
      </tr>
    </table>
    </body>
    </html>

  3. #3
    Candidat au Club
    Homme Profil pro
    Formateur
    Inscrit en
    Janvier 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Formateur
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2012
    Messages : 7
    Points : 4
    Points
    4
    Par défaut Retour état initial impossible
    Merci pour ta réponse Space Frog. Ton code est bien plus académique que le mien mais il ne permet pas de revenir à l'état initial en cas de nouveau clic (un bug dans la condition ternaire certainement...).J'obtenais le même résultat sans le else de ma condition et c'est vrai que le code se déroulait sans heurt. Je continue à chercher...

  4. #4
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    sans doute juste une histoire de chemin absolu...

    remplace cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById(picid).src=(picsrc=="croix.png")?"vide.png":"croix.png";
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById(picid).src=(picsrc.indexOf("croix.png")!=-1)?"vide.png":"croix.png";

  5. #5
    Candidat au Club
    Homme Profil pro
    Formateur
    Inscrit en
    Janvier 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Formateur
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2012
    Messages : 7
    Points : 4
    Points
    4
    Par défaut Yesssssssssss!!!
    Ok super çà fonctionne.
    J'ai pas compris le pourquoi du comment et en qualité de pédagogue j'aimerais avoir le détail si tu veux bien.
    Grand Merci
    A très bientôt j'espère
    Eric

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 643
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    fais un alert du src tu comprendras ...

  7. #7
    Candidat au Club
    Homme Profil pro
    Formateur
    Inscrit en
    Janvier 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Formateur
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2012
    Messages : 7
    Points : 4
    Points
    4
    Par défaut Pas sûr d'avoir compris
    Je ne sais pas où placer le alert pour avoir une explication mais faut-il comprendre que le script "attend" que l'image de remplacement soit chargée ?
    Merci
    Très cordialement
    Eric

  8. #8
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 128
    Points : 44 929
    Points
    44 929
    Par défaut
    Bonsoir,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function coche(picid){
      var picsrc=document.getElementById(picid).src;  
      // affiche l'adresse de la source
      alert( picsrc);
      document.getElementById(picid).src=(picsrc.indexOf("croix.png")!=-1)?"vide.png":"croix.png";
    }

  9. #9
    Candidat au Club
    Homme Profil pro
    Formateur
    Inscrit en
    Janvier 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Formateur
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2012
    Messages : 7
    Points : 4
    Points
    4
    Par défaut Pigé...
    Ok je comprends que le script initial avait toujours un clic de retard
    Je vais tout de même potasser ce "indexOf !=-1" qui ne me parle pas trop encore
    Bonne journée et encore merci
    Eric

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 643
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    ça revient à tester si la chaine du src contient "croix.png"

  11. #11
    Candidat au Club
    Homme Profil pro
    Formateur
    Inscrit en
    Janvier 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Formateur
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2012
    Messages : 7
    Points : 4
    Points
    4
    Par défaut Ok
    ...et en l'occurence la chaine contient "vide.png" au premier clic. Et le indexOf change la valeur de la chaine en "croix.png" avant de réaliser la condition... ce que j'essayais de réaliser avec mon if coche = 0 alors coche=1 et vice versa mais qui était plutôt "foireux"
    Je pense avoir bien compris
    Merci
    Eric

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

Discussions similaires

  1. [Débutant] Afficher des images par alternance
    Par subfestivus dans le forum VB.NET
    Réponses: 4
    Dernier message: 30/12/2012, 18h37
  2. Réponses: 35
    Dernier message: 26/09/2010, 21h38
  3. [Image]Alternative à GD pour superposer des images
    Par Invité4 dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 14/01/2006, 18h13
  4. Afficher des images sous directX
    Par cyberlewis dans le forum DirectX
    Réponses: 17
    Dernier message: 12/07/2004, 12h07
  5. [TP][MULTI-PROBLEME]Comment afficher des images pcx
    Par mikoeur dans le forum Turbo Pascal
    Réponses: 7
    Dernier message: 24/10/2002, 13h57

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