Ir para conteúdo

POWERED BY:

Arquivado

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

guilomaker

Abrir e Fechar DIV

Recommended Posts

Bom dia

 

tenho o seguinte código

<div class="produtos">

 <div class="produtos-box clean-fix">

  <img src="img/sj/caldeirao.jpg" width="186" height="186">

  <div class="detalhes-btn v-btn">
  <p>Informações</p>
  </div>

  <div class="produtos-box-info">
   <div class="titulo-produto">
    <div class="fechar"></div>
 </div>

 <div class="conteudo">
 <iframe class="iframe" src="infor/caldeirao.html"></iframe>
</div>

</div>
</div>
</div><!--produtos-->

eu clico na div produtos-box e exibo a div produto-box-info , que por padrão e hidden.

$(".produtos-box").click(function(){
     $(this).children(".produtos-box-info").show();
    });

e dentro da div produto-box-info eu tenho uma div .fechar a qual seria pra fechar a mesma div a qual ela pertence, no caso a .produto-box-info

 $(".fechar").click(function(){
      $(this).children(".produtos-box-info").hide();
    });

só que por questões de hierarquia a div .fechar não funciona, seu eu colocar a div .fechar como fora da div .produtos, ai ela funciona! então como faço pra que ela funciona estando onde ela está ? tenho que relacionar ela com as outras divs ? se sim como?

 

pra quem quiser ver funcionando : http://catalogo.reidoaluminio.com.br/ o primeiro produto da linha hotel.

 

aproveitando o tópico, usando este mesmo código, como faço pra quando a div .produto-box-info estiver ativa e se a pessoa abrir outra essa que estava aberta fecha?

 

pro que eu quero fazer eu tenho que usar .show e .hide , toggle não funciona pra mim, pois dentro dessa div de informação eu exibo um iframe que tem scroll, e usando toggle esse scroll aparece na primeira vez que abre, já na segunda o scroll some! Já com show/hide o scroll funciona direitinho.

Compartilhar este post


Link para o post
Compartilhar em outros sites
$(".fechar").click(function(){
      $(this).parents(".produtos").find(".produtos-box-info").hide();
    });

Vamos tentando até aparecer alguém que manje e responda! ou até nós msm resolver kkkk

Compartilhar este post


Link para o post
Compartilhar em outros sites
$(".fechar").click(function(){
      $(this).parents(".produtos").find(".produtos-box-info").hide();
    });

Vamos tentando até aparecer alguém que manje e responda! ou até nós msm resolver kkkk

 

 

hehe também não deu, to aqui quebrando cabeça, e aposto que e simples, faz muito tempo que to por fora.

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara tenho uma solução mas n sei se vai adotar! assim, n consegui usar bem as funções navegando no DOM mas consegui uma método que pode ser util. usando "toggle" assim cria a ilusão que clikando no x fecha mas clicando em qualquer lugar da div pai fecha!
segue:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
	$(".pai").click(function(){
		$(this).find(".filho").toggle();
		$(this).find(".neto").toggle();
	});
	$(".neto").click(function(){
		$(this).parentsUntil(".pai");
	});
}); 
</script>
<style type="text/css">
.filho {text-decoration: none; color:#000; display: none;}
.neto{text-decoration: none; color:#000; display: none;}
.pai{text-decoration: underline; color: #05f;}
</style>
</head>
<body>
<div>
	<div class="pai">clique aqui para ler:

        <div class="neto">1
        </div>    	
        
        <div class="filho">1
        </div>
    
    </div>
	<div class="pai">clique aqui para ler:
    	
        <div class="filho">2
        </div>
        
        <div class="neto">2
        </div>
    
    </div>
    <div class="pai">clique aqui para ler:
    	
        <div class="filho">3
        </div>
        
        <div class="neto">3
        </div>
    
    </div>
</div>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

igual eu falei no primeiro tópico

 

 

 

pro que eu quero fazer eu tenho que usar .show e .hide , toggle não funciona pra mim, pois dentro dessa div de informação eu exibo um iframe que tem scroll, e usando toggle esse scroll aparece na primeira vez que abre, já na segunda o scroll some! Já com show/hide o scroll funciona direitinho.

 

eu consigo fazer com o toggle, mais se eu usar ele o scroll da div informações não funciona normalmente. já com o show e hide funcionou da forma que eu preciso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara se você conseguir deixa um post aqui como foi! pq bixo! negócio complicado! kkkk

 

acho que você entendeu errado! eu falei que com o toggle não funciona da forma que eu preciso, eu preciso exibir a div ao clique do usuário e esconder a mesma ao clique do usuário em um lugar determinado.

 

ontem fiquei o dia todo buscando uma solução, ainda não sair do lugar!

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tinha dito que o problema da usar "toggle" era por causa do scroll que precisava aparecer e com toggle n aparecia você já tentou assim?

obs: abre em um navegador e olha funcionando e ver se é assim q você quer!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
    var n = $(".filho").css("display");
    $(".pai").click(function(){
        if($(this).find(".filho").css("display") == n){
            $(this).find("p").text("fechar");
            $(this).find(".filho").css("display","block");
        }else{
            $(this).find(".filho").css("display","none");
            $(this).find("p").text("abrir");
        }
    })
    
});
</script>
<style type="text/css">
.filho {text-decoration: none; color:#000; display: none; width: 100px; height: 100px; overflow: scroll;}
.neto{text-decoration: none; color:#000;}
.pai{text-decoration: underline; color: #05f; display: block;}
</style>
</head>
<body>
	<div class="pai"><p>clique aqui para ler:</p>
    
        <div class="filho">
        	<p>1</p>
            <p>3dlakjsdkjasdljaslkdjasjdlkjaslkdjas</p>
            <p>3dlakjsdkjasdljaslkdjasjdlkjaslkdjas</p>
            <p>3dlakjsdkjasdljaslkdjasjdlkjaslkdjas</p>
            <p>3dlakjsdkjasdljaslkdjasjdlkjaslkdjas</p> 
            
            <div class="neto">fechar</div> </div>   	
    	
        </div>
    <div class="pai"><p>clique aqui para ler:</p>

        <div class="filho">
        	<p>2</p>
            <p>3dlakjsdkjasdljaslkdjasjdlkjaslkdjas</p>
            <p>3dlakjsdkjasdljaslkdjasjdlkjaslkdjas</p>
            <p>3dlakjsdkjasdljaslkdjasjdlkjaslkdjas</p>
            <p>3dlakjsdkjasdljaslkdjasjdlkjaslkdjas</p> 
        
        <div class="neto">fechar </div>
    
        </div>    	
        
    </div>
    <div class="pai"><p>clique aqui para ler:</p>

        <div class="filho">
        	<p>3</p>
            <p>dlakjsdkjasdljaslkdjasjdlkjaslkdjas</p>
            <p>3dlakjsdkjasdljaslkdjasjdlkjaslkdjas</p>
            <p>3dlakjsdkjasdljaslkdjasjdlkjaslkdjas</p>
            <p>3dlakjsdkjasdljaslkdjasjdlkjaslkdjas</p> 
        <div class="neto">fechar </div>
    
        </div>    	
        
    </div>
</body>
</html>

dá uma olhada ai! :D

vamos conseguir! tenha fé! kkkk

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz um teste básico claro precisa de uma refatoração. Mas segue um script que pode ajudar.

(function(){
var $infos = $('.produtos-box-info');
var $boxes = $(".produtos-box");

//Unregister
$(".produtos > .produtos-box > .produtos-box-info > .titulo-produto > .fechar").unbind('click');
$boxes.unbind('click');

$infos.hide();

//Register
$infos.find('.fechar').unbind('click').bind('click', function(e) {
var $info = $(this).closest('.produtos-box-info');
$info.hide();
e.preventDefault();
return false;
});

//Register
$boxes.unbind('click').bind('click', function() {
$infos.hide();

var $info = $(this).find('.produtos-box-info');
$info.show();
});
})();

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Fala pessoal, tudo bem?
       
      Eu tenho o seguinte código:
       
      <script>
         $(function(){
      var jElement = $('.fixar_banner');
      $(window).scroll(function(){
          if ( $(this).scrollTop() > 120 ){
              jElement.css({
                  'position':'fixed',
                  'top':'10px'
              });
          }else{
              jElement.css({
                  'position':'relative',
                  'top':'auto'
              });
          }
      });
      });
      </script>
       
      Porém, eu quero que a div fique fixa até que outro elemento apareça na tela, tipo o rodapé da página por exemplo. É mais ou menos como a página de notícia do uol.
      https://noticias.uol.com.br/internacional/ultimas-noticias/2025/01/19/sonho-americano-brasileiros-moram-em-carro-e-buscam-comida-no-lixo-nos-eua.htm
       
      Espero ter sido claro.
       
      Obrigado :)
       
    • Por Thiago Duarte
      Oi, gostaria de arrastar imagem e ao soltar formar bloco html, meu bloco de html ficaria com nome, content-1.html, content-2.html, etc
       
      Alguem pode me ajudar?
    • Por ILR master
      Salve galera.
       
      Vou publicar um evento e quero colocar um Cronômetro regressivo que mostre em tempo real os dias, horas e minutos que faltam para determinada data, tipo:.
      Faltam 5 dias, 12:30:00 para inauguração.
       
      Qdo chegar no dia, quero que apenas apareça uma mensagem.
       
      Alguém pode me ajudar?
    • Por Alessandro Bodão
      Fala galerinha, 
       
      Tenho um container com um título (h1) no cabeçalho do meu site, esse container ocupa metade da tela (50vw), e eu gostaria que esse título ocupasse toda a largura desse container, independente do seu tamanho ou do tamanho do monitor, de forma com que a palavra tenha exactamente o mesmo tamanho do container (vou anexar uma foto de exemplo). Já tentei todos os valores pra essa h1, como % e vw... mas nada parece fazer sentido.
       
       

    • Por Danilo - Jesus voltará!
      Olá pessoal, tenho uma div a qual através de um select categorias eu trago dados de empresas do banco, aí preciso clicar nas listagens das empresas e pegar o ID quando clica no checkbox e gravar pelo ajax novamente na session feita no arquivo php tipo um carrinho de compras, que essa parte já tenho... só não to conseguindo pegar os ids gerados dinamicamente no retorno feito do ajax, eles aparecem com F12 ao inspecionar, mas não aceita eu clicar para pegar o ID, acho que é algo de DOM, mas não to sabendo fazer... alguém aí saberia me ajudar como pegar esses ids ao clicar, já que eles vem dinamicamente?
       
      obrigado
×

Informação importante

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