• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

mapb_1990

mostrar / esconder

10 mensagens neste tópico

boas.

cria fazer umas box's em k o texto dessa box era mostrado ou escondido.

saquei um codigo na net, pk de js nao sei kuase nd, mas tenho um problema, kuando tenho 2 boxes ou +, ao clicar na 2ª, fecha a 1ª.

como nb percebo nd de js, n sei corrigir.

alguem ajuda?

function download_box( el)
{
if ( el.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display !='')
{
	el.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; 
}
else
{
	el.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none';
}
el.blur();
}

<div id="download_box_top" onclick="javascript:download_box(this);"></div>
<div id="download_box_main">
<div id="download_box_text">Texto a esconder 1</div>
</div>
<div id="download_box_bottom"></div>
<br />
<div id="download_box_top" onclick="javascript:download_box(this);"></div>
<div id="download_box_main">
<div id="download_box_text">Texto a esconder 2</div>
</div>
<div id="download_box_bottom"></div>

podem o ver aki: http://www.anime-land.org/downloadbox.html

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Existem Ids com nomes repetidos (nos div). Isso só por si é um erro.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

mas ai não se pode fazer nd.

numa página tanto posso ter 1 box, como 20.

tem k haver uma maneira de no codigo js testar kual foi accionado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

mas ai não se pode fazer nd.

numa página tanto posso ter 1 box, como 20.

tem k haver uma maneira de no codigo js testar kual foi accionado.

Usa classes em vez de ids. O javascript não adivinha.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas.

Nunca deves repetir os IDs dos elementos, se o fazes por causa do CSS usa "class".

Isto acho que funciona mas não foi testado.

function download_box( el )
{
  var Par = el.parentNode;
  var Node = Par.childNodes[ 1 ].childNodes[ 0 ];
  if ( Node.style.display != '' )
  {
    Node.style.display = ''; 
  }
  else
  {
    Node.style.display = 'none';
  }
  el.blur();
}

<div>
  <div onclick="javascript:download_box( this );">Fechar/Abrir</div>
  <div>
    <div>Texto a esconder 1</div>
  </div>
</div>
<br />
<div>
  <div onclick="javascript:download_box( this );">Fechar/Abrir</div>
  <div>
    <div>Texto a esconder 2</div>
  </div>
</div>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A ideia n era tirares o id, era mudares o nome de um dos ids.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Usa isto.

function download_box( el )
{
  var Par = el.parentNode;
  var Node = Par.getElementsByTagName( "DIV" )[ 1 ];
  if ( Node.style.display != '' )
  {
    Node.style.display = ''; 
  }
  else
  {
    Node.style.display = 'none';
  }
  el.blur();
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O codigo em cima esconde e mostra o DIV parent do DIV que contem "Texto a esconder...".

Se quiseres esconder o DIV que contem "Texto a esconder..." altera esta linha :

  var Node = Par.getElementsByTagName( "DIV" )[ 1 ];

para :

  var Node = Par.getElementsByTagName( "DIV" )[ 2 ];

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora