Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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.
>
$(".fechar").click(function(){
$(this).parents(".produtos-box-info").hide();
});
Tenta isso! acho q vai funcionar! :D
pior que não funcionou!!
$(".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
>
$(".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.
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"></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>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.
cara se vc conseguir deixa um post aqui como foi! pq bixo! negócio complicado! kkkk
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!
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"></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
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();
});
})();Modifiquei meu código anterior! agora tá sussa!
Tenta isso! acho q vai funcionar! :D