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

[Résolu]
Signaler
Messages postés
11
Date d'inscription
samedi 30 avril 2005
Statut
Membre
Dernière intervention
20 avril 2010
-
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
-
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

Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
18
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)
Messages postés
419
Date d'inscription
dimanche 31 août 2003
Statut
Membre
Dernière intervention
19 avril 2010
1
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 !
Messages postés
11
Date d'inscription
samedi 30 avril 2005
Statut
Membre
Dernière intervention
20 avril 2010

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 !
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
18
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)