Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1048 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°1650072
Maelkoth
Posté le 28-11-2007 à 10:28:28  profilanswer
 

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
mood
Publicité
Posté le 28-11-2007 à 10:28:28  profilanswer
 

n°1650079
dwogsi
Défaillance cérébrale...
Posté le 28-11-2007 à 10:41:39  profilanswer
 

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})/
n°1650105
Maelkoth
Posté le 28-11-2007 à 11:02:32  profilanswer
 

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

n°1650173
gatsu35
Blablaté par Harko
Posté le 28-11-2007 à 12:43:52  profilanswer
 

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

n°1664021
weed
Posté le 29-12-2007 à 23:06:09  profilanswer
 

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
n°1664024
gatsu35
Blablaté par Harko
Posté le 29-12-2007 à 23:46:21  profilanswer
 

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

n°1664027
weed
Posté le 30-12-2007 à 00:11:03  profilanswer
 

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 :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

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

 

Sujets relatifs
[Résolu] chmod() et les variables $_GET['var'][Résolu] un script ne respercte pas <form action="">
[Résolu] ][Java] Conversion d'une chaîne HTML en UnicodeEnvoyer dans une autre frame des infos via javascript
Formulaire/méthode GET et action [résolu]Javascript et IE7 : probleme de taille !
[RESOLU] Impossible de SELECT suite au lancement d'une fonctionProbleme avec javascript/ajax
[RESOLU]Log intempestif de la classe "DefaultServlet" sous Tomcat 6Petit probleme Html RESOLU
Plus de sujets relatifs à : [Résolu]Javascript, div, visibility et position


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR