Lien affichant texte et supprime le précédent s'il y a(Javascript)

Résolu
vincenzodelarossa
Messages postés
11
Date d'inscription
samedi 30 avril 2005
Statut
Membre
Dernière intervention
20 avril 2010
- 19 avril 2010 à 00:52
PetoleTeam
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
- 19 avril 2010 à 17:12
Bonjour à tous.

Petit soucis dans mes conditions

mon script est:
<script type="text/javascript">
function Swap( div_){
var Obj = document.getElementById( div_);
if( Obj)
{
if( Obj.style.display=="") Obj.style.display="none";
else Obj.style.display="";
}
}
</script>

et dans le body:




<li>[# 1]</li>
<li>[# 2]</li>
<li>[# 3]</li>
<li>[# 4]</li>






Texte 1





Texte 2




Texte 3




Texte 4


-----------------------------------
cependant il faut que je clique dessus a nouveau pr le faire disparaitre.
Je souhaiterai qu'en cliquant sur l'un (par exemple 3) il efface automatiquement le texte precedent pr afficher le 3; idem pr le 1, le 2 et le 4.

4 réponses

PetoleTeam
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
17
19 avril 2010 à 09:26
Bonjour,
il existe aussi la solution en donnant des ID qui se suivent, comme dans ton cas, et de faire une boucle ce qui supprime la gestion du tableau.
cela peut donner un truc du style
//------------------
function Swap( div_){
  var i = 1;
  var Obj;
  //-- Masque tout le DIV_x
  while( Obj = document.getElementById( 'DIV_' +i)){
    if( Obj){
      Obj.style.display = "none";
    }
    i++;
  }
  //-- Affiche la demande
  Obj = document.getElementById( div_);
  if( Obj)
    Obj.style.display = "block";
}


Une autre solution et de gérer un Div_Encours...

;O)
3
cs_leris
Messages postés
419
Date d'inscription
dimanche 31 août 2003
Statut
Membre
Dernière intervention
19 avril 2010
3
19 avril 2010 à 03:24
Salut,


il suffit de modifier le script comme ceci:

<script type="text/javascript">
var tab = new Array('div_1','div_2','div_3','div_4');
function Swap( div_){
for(var i=0; i<tab.length; ++i)
document.getElementById(tab[i]).style.display = 'none';
document.getElementById(div_).style.display = 'inline';
}
</script>


++

L.


pas glop !
0
vincenzodelarossa
Messages postés
11
Date d'inscription
samedi 30 avril 2005
Statut
Membre
Dernière intervention
20 avril 2010

19 avril 2010 à 11:09
Merci les gars, c'est exactement ca, jvais prendre la sol dePetole team,
la boucle est toute bete, je n'y avais pas pensé, merci pr le coup de main !
0
PetoleTeam
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
17
19 avril 2010 à 17:12
Bonjour,
- N'oubliez pas qu'un forum ne sert pas qu'à poser sa question!
- Il sert aussi, aux autres, à trouver une réponse satisfaisante à une question.
- Merci de mettre en réponse acceptée, la réponse qui vous a aidé ou même votre propre solution.
- C'est aussi cela l'esprit d'un forum...
;O)
0