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 :

Changer d'image sur un Onclick


Sujet :

JavaScript

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    478
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 478
    Points : 189
    Points
    189
    Par défaut Changer d'image sur un Onclick
    Bonjour,

    lorsque je clique sur l'image la premiere fois, l'image change, mais si je reclique dessus elle ne revient pas pour l'image de depart.

    Voici mon 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
    <script type="text/javascript">
     
     
    function panier(Id)
    { 
     var IMG;
        IMG = document.getElementById(Id);
     if (IMG.src=="memoriserplus.gif")
         {
    	IMG.src="memorisermoins.png";
          }
     else 
         {
    	IMG.src="memoriserplus.gif";
          }
    }
    </script>
     
    <input type="image" src="memoriserplus.gif" ALT="" TITLE="" name="panier52" id="panier52" onclick="panier(this.id)">
    Merci de votre aide

  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 640
    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 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    Hormis le fait qu'il est très maladroit en js d'appeler des variables avec des mots réservés du langage IMG et id

    Il faut savoir qu'un bouton de type image agit comme un bouton submit, si il est contenu dans un formulaire il va soumettre le form et donc recharger la page
    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
     
    <script type="text/javascript">
    function panier(ImgId)
    { 
     var myimg= document.getElementById(ImgId);
     if (myimg.style.backgroundImage.indexOf('memoriserplus.gif')>0)
         {
        myimg.style.backgroundImage='url("memorisermoins.png")'; 
    	alert (myimg.style.backgroundImage);
          }
     else 
         {
    	myimg.style.backgroundImage='url("memoriserplus.gif")';
    		alert (myimg.style.backgroundImage);
          }
    }
    </script>
     
    </head>
     
    <body>
    <input type="button" style="background-image: url('memoriserplus.gif')" ALT="" TITLE="" name="panier52" id="panier52" onclick="panier(this.id)">
     
    </body>

  3. #3
    Inactif  

    Profil pro
    Inscrit en
    Mai 2010
    Messages
    345
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 345
    Points : 496
    Points
    496
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    Hormis le fait qu'il est très maladroit en js d'appeler des variables avec des mots réservés du langage IMG et id
    Encore une fois de plus tu dis n'importe quoi, ce ne sont pas des mots réservés du langage. Les mots réservés du langage sont : for, in, if, else, while, do, function, undefined, return, false, true, etc...
    Mais img et id ont le droit d'être utilisées comme variables, surtout si elle sont locales à la fonction.

  4. #4
    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 640
    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 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    Encore une fois de plus tu dis n'importe quoi,
    Merci !

    Ok pour ta liste de mots "réservés" ...
    Mais cela n'empeche que utiliser des variables telles que id et img peuvent selon leur portée préter à confusion.
    Je suis tombé sur un cas ou id m'a mis dedans pour trois heures (sous IE)

    Maintenant chacun code comme il veut...

  5. #5
    Inactif  

    Profil pro
    Inscrit en
    Mai 2010
    Messages
    345
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 345
    Points : 496
    Points
    496
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    Merci !

    Ok pour ta liste de mots "réservés" ...
    Mais cela n'empeche que utiliser des variables telles que id et img peuvent selon leur portée préter à confusion.
    Je suis tombé sur un cas ou id m'a mis dedans pour trois heures (sous IE)

    Maintenant chacun code comme il veut...
    id n'est qu'une propriété d'éléments du dom (et encore) et ça n'empeche pas de l'utiliser comme variable et c'est largement plus clair :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var id = chien.id,
    name = chien.name;
    ici name et id prennent tout leur sens comme variables.
    Encore une fois, si id t'a mis dedans durant 3 heures c'est que tu sais mal débugger du code sous IE

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    478
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 478
    Points : 189
    Points
    189
    Par défaut
    En fait la page ne se recharger pas car je fais le form dans une iframe qui s'appelle panier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form  method="post" action="panier.php" target="panier" name="Form" id="Form">

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    478
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 478
    Points : 189
    Points
    189
    Par défaut
    Le code de Spacefog fonctionne mais pas avec Internet explorer. Existe-il une methode pour remedier a cela?

    Merci

  8. #8
    Membre expérimenté
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    Juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 077
    Points : 1 742
    Points
    1 742
    Par défaut
    Pour vous départager,
    Je pense qu'il est une bonne pratiqe d'appeler une variable avec un mot réserver mas pas sous sa forma brute mais en l'incluant dans le nom de la variable avec un autre mot ce qui permet d'identifier le type de la variable grace a son nom, ce qui est pratique tant que la variable n'est pas nommé exactement comme le mot réserver je ne vois pas le problème au contraire.

  9. #9
    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 640
    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 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    Quelle version d'IE ??? j'ai testé sous IE et FFX sans souci ...

    Pour ce qui est du nommage des variable je mets toujours myId ou ObjId
    Ce qui reste très clair et ne pose aucun souci ni de confusions ni de conflits.

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    478
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 478
    Points : 189
    Points
    189
    Par défaut
    Sur les versions de IE 8 ou 9

    Voici un lien vers ma page:
    http://www.bonplanvoyage.com/index.p...ionbp=quefaire

    Si vous cliquez sur la valise de la liste, l'image change avec FF mais pas avec IE

    Merci de votre aide

  11. #11
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 080
    Points : 44 684
    Points
    44 684
    Par défaut
    Bonjour,
    la GROSSE maladresse est de ne pas faire preuve d'imagination quant au choix des noms pour les variables, les fonctions et le reste.

    Je rejoint en ce sens SpaceFrog en étendant cela aux mots déjà utilisés surtout qu'il faut compter avec IE.

    Pour IE une "différence", plutôt confusion, de taille est faite entre une fonction appelée dans du javascript et la même fonction appelée sur les événements mis dans les balises.

    Un petit exemple pour illustrer le propos, à tester sur IE principalement
    Code html : 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
    <!DOCTYPE HTML>
    <html lang="fr">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>[...]</title>
    <meta name="Author" content="NoSmoking">
    <script type="text/javascript">
    function panier( param){
      alert( param +'\n' +arguments.callee);
    }
    </script>
    </head>
    <body>
    <iframe name="panier"></iframe>
    <button onclick="panier('depuis BALISE !');">PANIER</button>
    <script type="text/javascript">
      panier('depuis SCRIPT !');
    </script>
    </body>
    </html>

    Donc pour répondre à voyageurdumonde, mets des noms significatifs et évites ce genre de doublons de libellé.

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    478
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 478
    Points : 189
    Points
    189
    Par défaut
    Je viens de changer le nom de l'iframe et maintenant tout est ok avec IE.

    Merci a tous de votre aide

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 29/04/2015, 00h18
  2. Bouton On/Off pour changer une image sur deux
    Par psolka dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 08/04/2014, 08h24
  3. frontpage - changer nom image sur plusieurs pages
    Par webtender dans le forum Autres
    Réponses: 0
    Dernier message: 26/09/2009, 11h26
  4. Changer d'image sur un onClick
    Par vds2302 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 26/10/2007, 12h44
  5. Changer une image sur le hover
    Par taffMan dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 05/11/2006, 20h44

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