Listbox/javascript et css

Résolu
leejunfan Messages postés 45 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 7 août 2008 - 23 mai 2008 à 11:22
leejunfan Messages postés 45 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 7 août 2008 - 23 mai 2008 à 11:45
Bonjour a tous,

Je suis en train de programmer une petite listbox qui doit m'afficher un fond différent en fonction des choix sans recharger la page

voici mon code :

css :
#contact1 {
background: url(img/layerintro.jpg) left top no-repeat;
}
#contact2 {
background: url(img/layer1.jpg) left top no-repeat;
}#contact3 {
background: url(img/layer2.jpg) left top no-repeat;
}#contact4 {
background: url(img/layer3.jpg) left top no-repeat;
}#contact5 {
background: url(img/layer4.jpg) left top no-repeat;
}

Javascript :
function layerContact (idContact) {
for (var i = 1; i<=5; i++) {
   document.getElementById('contact'+i).id=idContact;
   return false; 
 }
}

Et enfin xhtml :


 

        <li>
          Renseignements commerciaux</li>
           <li>
          Demande d'identifiant et/ou de code confidentiel</li>
          <li>
          Assistance technique</li>
          <li>
          Réclamations ou suggestions</li>     

Tout cela me parait relativement simple, seulement voila, cela ne marche qu'une fois ensuite j'ai une erreur js :

Erreur : document.getElementById("contact" + i) has no properties
Fichier source : layercontact.js
Ligne : 5

Je pense que je ne suis pas loin de la solution mais pour l'instant je rame et si une bonne âme voulait m'aider ...

6 réponses

leejunfan Messages postés 45 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 7 août 2008
23 mai 2008 à 11:41
Solution déja trouvée, je donne une id a ma balise div et je passe par les class pour changer de css :

function layerContact (classContact) {
document.getElementById('contact1').className=classContact;
return false;
}
3
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 31
23 mai 2008 à 11:38
Bonjour,
    javascript dans un évênement est un pléonasme
    mais 2 fois, ça lui plait encore moins.

    on ne dispose pas de la function closeList !

          Renseignements commerciaux</li>

   perso à [# je préfère
                ]

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 31
23 mai 2008 à 11:40
j'ai oublie.. href="#"   sans rien derrière
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 31
23 mai 2008 à 11:42
de plus : document.getElementById('contact'+i).id=idContact;
    c'est censé faire quoi ?    pourquoi vouloir changer l'ID d'un élément ?
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
leejunfan Messages postés 45 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 7 août 2008
23 mai 2008 à 11:44
Merci pour cette précision syntaxique bultez.

Pourquoi plusieurs événements javascript sur un même lien te semble déconseillé ? Je devrais tout intégrer dans la même fonction ?

Et merci pour la diligence de tes réponses ;o)
0
leejunfan Messages postés 45 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 7 août 2008
23 mai 2008 à 11:45
Oui le but était de changer d'id afin d'attribuer un css différent
Mais je passe maintenant par des class en identifiant sur un id et cela fonctionne impec ;o)
0