[Résolu]Javascript, div, visibility et position

Javascript, div, visibility et position [Résolu] - HTML/CSS - Programmation

Marsh Posté le 28-11-2007 à 10:28:28    

Bonjour,
 
J'ai une petit soucis d'affichage de balise Div. J'ai 2 tableaux et 2 lines dans ma page, chaque lien affichant le tableau correspondant ou le masquant. J'utilise pour cela une fonction javascript.
Le problème est qu'il modifie bien l'attribut position mais pas visibilty. Je me retrouve avec la place réservée pour mon tableau, mais cette zone est vide  :heink:  
 
Ma jsp, exemple d'un tableau

Code :
  1. <tr>
  2.      <td>
  3.          <div style="position:relative">
  4.    <div id="sortant" style="visibility:hidden;position:absolute">
  5.        <logic:empty name="currentListePatienteleSortant">
  6.         <bean:message key="activite.patientelemedecintraitant.texte.noSortant"/>
  7.        </logic:empty>
  8.        <logic:notEmpty name="currentListePatienteleSortant">
  9.         <display:table name="currentListePatienteleSortant">
  10.          <display:column property="nom" title="<%= titleNom %>"/>
  11.          <display:column property="prenom" title="<%= titlePrenom %>"/>
  12.          <display:column property="dateNaissance" title="<%= titleDateNaissance %>"/>
  13.          <display:column property="nir" title="<%= titleNir %>"/>
  14.          <display:column property="dateDeclaration" title="<%= titleDateDeclaration %>"/>
  15.          <display:column property="dateSortie" title="<%= titleDateSortie %>"/>
  16.         </display:table>
  17.        </logic:notEmpty>
  18.       </div>
  19.     </div>
  20.      </td>
  21.     </tr>


 
Un bout de ma fonction javascript correspondant à ce tableau

Code :
  1. if(document.getElementById(sortant).style.visibility=='hidden')
  2.    {
  3.     alert('sortant=visible, entrant=hidden');
  4.     document.getElementById(sortant).style.visibility='visible';
  5.        document.getElementById(sortant).style.position='relative';
  6.     document.getElementById(entrant).style.visibility='hidden';
  7.     document.getElementById(entrant).style.position='absolute';  
  8.    }else
  9.    {
  10.     alert('sortant=hidden');
  11.     document.getElementById(sortant).style.visibility='hidden';
  12.     document.getElementById(sortant).style.position='absolute';
  13.    }
  14.   }


 
Je suis sûr que c'est une connerie, mais j'arrive pas à trouver.
Une idée ?
 
Merci d'avance


Message édité par Maelkoth le 28-11-2007 à 11:03:19
Reply

Marsh Posté le 28-11-2007 à 10:28:28   

Reply

Marsh Posté le 28-11-2007 à 10:41:39    

Normal, faut pas utiliser l'attribut visibility mais l'attribut display.
Avec pour valeur none pour masquer.


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 28-11-2007 à 11:02:32    

Impeccable !
 
Rapidité, efficacité : dwogsi, you're a god among men :)

Reply

Marsh Posté le 28-11-2007 à 12:43:52    

none pour masquer et display='' pour afficher comme ça ca remet la valeur par défaut du tableau, car un tableau sous IE c'est display:block et sous FF, opera, Safari c'est display:table

Reply

Marsh Posté le 29-12-2007 à 23:06:09    

je te remercie Gatsu. Tu m'a confirmé mes doutes sur le faite que Firefox IE ne sait pas gerer la propriété table-row ...
 
La solution est donc de try et de catcher en cas d'erreur et ainsi d'executer la methode IE (mode block)
 

Code :
  1. try {
  2.   projet2.style.display  = 'table-row';
  3.  }
  4.  catch(err) {
  5.   projet2.style.display  = 'block';
  6.  }

Message cité 1 fois
Message édité par weed le 30-12-2007 à 00:11:35
Reply

Marsh Posté le 29-12-2007 à 23:46:21    

weed a écrit :

je te remercie Gatsu. Tu m'a confirmé mes doutes sur le faite que Firefox ne sait pas gerer la propriété table-row ...
 
La solution est donc de try et de catcher en cas d'erreur et ainsi d'executer la methode IE (mode block)
 

Code :
  1. try {
  2.   projet2.style.display  = 'table-row';
  3.  }
  4.  catch(err) {
  5.   projet2.style.display  = 'block';
  6.  }



c'est IE qui ne ne sait pas faire, alors que firefox, justement connait table-row

Reply

Marsh Posté le 30-12-2007 à 00:11:03    

euhhh oui  en effet Gasu35, je me suis emmellé les crayons ...
 
Je me suis permi de mettre  mon code pour completer le topic et ainsi aider les personnes qui rencontrerons le meme problème et qui tomberons sur le topic  
 
En tout cas, merci :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed