Nouveau sur le forum ? Voici votre case départ pour bien débuter.

Liens contextuels :

Auteur
Joe Le Mort
# 07 May 2008 - 10:47:05
Citer
29 Posts
Bonjour a tous,

j'ai un soucis en voulant alterner 2 div avec un lien.

JAVASCRIPT
<script type="text/javascript">
function alterner(obj1, obj2){
var el = document.getElementById(obj1);
var el2 = document.getElementById(obj2);
if(el.style.display != "block"){
el.style.display = "block";
el2.style.display = "none";
}else{
el2.style.display = "block";
el.style.display = "none";
}
}
</script>

Lien
<a onclick="alterner('profile_1','profile_1_edit');" title="Switch the Menu">Edit</a>

HTML

<div id="profile_1">
INFOS
</div>
<div id="profile_1_edit"
EDITION
</div>


le probleme est que quand je clique la premiere fois sur le lien, il n'alterne pas au premier clic (apres c'est bon), il affiche la div profile_1_edit.
Si je rajoute : style="display:none; à la div profile_1_edit, il n'alterne toujours pas au premier clic, mais dans ce cas, il affiche la div (qui est en display none) donc il n'affiche rien.

Que faire pour initialiser profile_1_edit a display:none et des le premier clic, que cela alterne les div !

Merci confus

http://www.tuxboard.com msn 
^
Florent V.
# 07 May 2008 - 12:57:07
Citer
On va manger des chips.
Modérateur
11436 Posts
Bonjour,

Pour commencer, je place ce sujet dans le salon Javascript où il me semble plus à sa place.

Ensuite, il me semble que le problème vient du fait que element.style.display ne retourne une valeur que si l'élément a un attribut HTML style avec propriété CSS display renseignée. Autrement dit (et sauf erreur de ma part), element.style.display ne permet pas de récupérer la valeur de display qui serait affectée via une feuille de style interne ou externe ou via les styles par défaut du navigateur.

Solution «quick 'n dirty»: partir du code HTML suivant...
<div id="profile_1" style="display: block;">
INFOS
</div>
<div id="profile_1_edit" style="display: none;">
EDITION
</div>


Dans les solutions qui n'imposent pas de corriger le code HTML:
1. Travailler avec une variable que tu initialises au début et qui indique quel bloc doit être affiché (ou quel bloc doit être caché). Et à chaque appel de la fonction alterner, tu modifies la valeur de cette variable.

2. Écrire le style="display: ..." au lancement de la page via une fonction JS toute simple:
function prepareAlternance(obj1, obj2) {
document.getElementById(obj1).style.display = "block";
document.getElementById(obj2).style.display = "none";
}

Ainsi au chargement de la page tu fais un prepareAlternance("un", "deux");, et au clic sur un onglet ou autre dispositif prévu tu peux utiliser alterner("un", "deux");.

http://www.covertprestige.net 
^
Joe Le Mort
# 07 May 2008 - 13:04:02
Citer
29 Posts
Merci Flo, le quick 'n dirty marche impec'.
Il fallait bien reseigner un display à la 1ere DIV cligne

http://www.tuxboard.com msn 
^

référencesLes références web : openweb.eu.org - opquast.com - webmaster-hub.com - webrankinfo.com - salemioche.net - web-pour-tous.org - webonorme.org

Nos partenaires : Editions Eyrolles - Location vacances France - Location vacances Europe

Nikozen : Hébergement - Réalisation : Alsacreations.fr

Powered by Phedio v3.8 beta © dew
Contacter l'administrateur - 6.9 ms - Charte