Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Carcleo

Não consigo esconder a DIV

Recommended Posts

Pessoal!


Tenho o seguinte código:


<style>.minhaClasse{display:block};</style>
<div class="minhaClasse"> Mostra a div </div>

<style>.minhaClasse{display:none};</style>
<div class="minhaClasse"> Mostra a div mesmo estando setado para não mostrar </div>


Na verdade, o que eu tenho é um loop for e dentro dele uma comparação se o usuário da vez é igual ao usuário que esta guardado na sessão.


Se for, mostra a div que contem um botão de editar, caso contrário, não mostra essa div.


O loop e a comparação estão funcionando corretamente, mas parece que um vez que lançou o primeiro style, ele passa a valer para todos.



Outra tentativa que usei foi usar uma funçao JavaScript para abrir e fechar div's


// JavaScript Document
function abre(div)
{
document.getElementById(div).style.display = "block";
}

function fecha(div)
{
document.getElementById(div).style.display = "none";
}

E desta vez fiz a verificação assim:


<c:choose>
<c:when test="${usuarioLogado.id == idUsuario}">
<script>abre("${valorDiv}")</script>
</c:when>
<c:otherwise>
<script>fecha("${valorDiv}")</script>
</c:otherwise>
</c:choose>

Isso me traz corretamente algo do tipo:


<script>abre("liberaEdicao111")</script>
<div id="liberaEdicao111"> Mostra a div </div>


<script>fecha("liberaEdicao112")</script>
<div id="liberaEdicao112"> Mostra a div mesmo estando setado para não mostrar </div>


Mas mesmo assim não fecha a div de baixo.


Algum outro recurso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já ouviu falar em efeito cascata? Como você está utilziando a mesma classe, antes da primeira div você seta a classe pra block (em todos os elementos), e antes da segunda, muda para none.

 

Acredito que o ideal é deixa a tag <style> dentro do <head>.

 

Não sei se CSS tem essa dinâmica.

 

Quero dizer, utilizando classe.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A sua primeira opção é fazer algo que particularmente eu detesto que seria colocar o CSS diretamente na <div>


<html>

  <head>
    
    <style>
      .minhaClasse{
        background: gray;
      };
    </style>
    
  </head>

  <body>
    
    <div class="minhaClasse" style="display:block"> Mostra a div </div>
    <div class="minhaClasse" style="display:none"> Mostra a div mesmo estando setado para não mostrar </div>
    
  </body>

</html>

Este mesmo código funcionando: http://codepen.io/anon/pen/KpEwRb


Agora uma opção melhor seria usar hierarquia de classes http://codepen.io/anon/pen/PqLwBQ

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.