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 :

getElementsByName, TagName ou Id ?


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 11
    Points : 11
    Points
    11
    Par défaut getElementsByName, TagName ou Id ?
    Hello à tous, personne déjà debout ici? si quelqu'un pourrais m'éclaircir je tourne en rond

    Je suis en train de crée une gallerie image sur mon site, j'ai un tableau avec 9 cases, chacune contiennent une image chargement.gif et les deux DIVs ci dessous

    Voici le code, vous comprendrez peut-être mieux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <script type="text/javascript">
    function image_visible()
    {document.getElementById('chargement').style.display="none";
    document.getElementById('image_ok').style.display="block";}
    </script>
     
    <div id="chargement"><img src="chargement.gif"></div>
    <div id="image_ok" style="display:none">
    <img src="monimage.gif" onload="javascript:image_visible()"></div>
    En résumé dès que mon image est téléchargée l'image de chargement disparait (tout le DIV)...

    Comment faire pour rendre cette fonction pour tout mes DIVs (ou il y a l'image bien sur) un ID ne peut etre le meme donc le chargement se passe bien sur une seul case... J'ai éssayé avec un input (type image) et getElementsByName mais je suppose que ce n'est plus style.display mais du genre type="hidden" ou jme trompe?

    Bref, quelqu'un pourrait m'éclaircir??? Toute idée est la bienvenue..

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 893
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 893
    Points : 16 350
    Points
    16 350
    Par défaut
    Déjà, l'attribut onload n'existe que pour la balise body.

    Ensuite, il te suffit de mettre un paramètre à ta fonction :

    Appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    image_visible('chargement1', 'image_ok1')
    Déclaration :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function image_visible(chargement, image){
       document.getElementById(chargement).style.display = "none";
       document.getElementById(image).style.display = "block";
    }

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 11
    Points : 11
    Points
    11
    Par défaut
    Merci de ta réponse si rapide! Que pour le body? Je voudrais faire appel a une fonction des que l'image est chargée, apparement cela fonctionne sur <img> comme un <input>

    Je comprend pas vraiment le fait d'ajouté un paramètre

    J'ai plusieurs fois ceci dans ma page, apparement je peut pas utilisé le même ID, sinon un seul s'affiche, avec un name au lieu de ID cela pourrait aider? (J'ai essayé avec getElementsByName mais sans résultats)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <div id="chargement"><img src="chargement.gif"></div>
    <div id="image_ok" style="display:none">
    <img src="monimage.gif" onload="javascript:image_visible()"></div>
     
    <div id="chargement"><img src="chargement.gif"></div>
    <div id="image_ok" style="display:none">
    <img src="monimage.gif" onload="javascript:image_visible()"></div>

  4. #4
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 893
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 893
    Points : 16 350
    Points
    16 350
    Par défaut
    getElementsByName ne peut pas fonctionner, l'attribut name n'étant pas valide sur un div ..

    Mais tu peux faire comme ça :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <div id="chargement1"><img src="chargement.gif"></div>
    <div id="image_ok1" style="display:none">
    <img src="monimage.gif" onload="javascript:image_visible('chargement1', 'image_ok1')"></div>
     
    <div id="chargement2"><img src="chargement.gif"></div>
    <div id="image_ok2" style="display:none">
    <img src="monimage.gif" onload="javascript:image_visible('chargement2', 'image_ok2')"></div>
    Et en modifiant ta fonction comme je l'ai fait plus haut.

    Je persiste à dire que l'attribut onload n'existe pas pour la balise img, mais si ton code fonctionne comme ça, soit.

  5. #5
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 11
    Points : 11
    Points
    11
    Par défaut
    ahh ok j'y avais pensé mais c'est une page en php ou je n'ai que trois DIVs, les autres apparaissent avec un mysql_fetch_row donc je crois que ceci ne va pas fonctionner... Un DIV en devient trois, donc avec le meme ID a chaque fois... C'est pour cela d'ailleur que j'ai essayé avec le "name"

    PS: pour le onload, localement sur le pc comme un un serveur web ca tourne bien et dans tout les browser, bien que c'est largement utilisé pour le body, les browser ont apparement été plus malin...

Discussions similaires

  1. [getElementsByName] fonctionnement ?
    Par banzzai dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 15/06/2006, 15h45
  2. GetElementsByName.length différent entre IE et FireFox
    Par seb34 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 14/06/2006, 17h13
  3. getElementsByName
    Par stela86 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 11/05/2006, 15h16
  4. Probème vec getElementsByName
    Par richton95 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 22/04/2006, 21h45
  5. getElementsByName ou getElementById
    Par lepierre dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/10/2004, 15h44

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