Ir para conteúdo

POWERED BY:

Arquivado

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

Eduardo Villa

Quando abrir uma DIV, a outra se fecha...

Recommended Posts

Olá galera Imaster...

Como vocês podem ver, click aqui... Ao clicar em algum dos dois cantores abre do lado as informações, mas para abrir as informações do outro é preciso fechar a primeira se ñ fica por cima da outra...

*Estou usando este código(postei o arquivo compactado para ajudar)-> scriptaculous-js-1.8.1

*No link coloquei a href="java script:Effect.toggle('nome_DIV','appear');" alt="nome_DIV"...

 

Gostaria de saber se tem como fazer com que abra as informações da primeira e clicando na outra feche a primeira e abra a nova DIV...

Entenderam???

 

Aguardo Resposta

Dudesigner

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem que dar uma analizada no código...

e fazer uma excessão...

 

SE tal div tiver aberta, e eu cliquei no link da outra, dá none nela.. e dá block na outra...

mas ai tem que ver como o script trabalha...

 

Vou mover para o forum certo.

Webstandards: CSS / XML / XHTML / HTML http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Javascript/DHTML

 

Fiz uma modificação no script:

Arquivo: effects.js Linha 155.

toggle: function(element, effect, tirar) {
	element = $(element);
	tirar = $(tirar);
	
		tirar.style.display = 'none'; /* Modificado por William Bruno, fórum iMasters */
		
	effect = (effect || 'appear').toLowerCase();
	var options = Object.extend({
	  queue: { position:'end', scope:(element.id || 'global'), limit: 1 }
	}, arguments[2] || { });
	Effect[element.visible() ? 
	  Effect.PAIRS[effect][1] : Effect.PAIRS[effect][0]](element, options);
  }
};
E agora, chama a função assim:

onclick="Effect.toggle('d3','appear','d2'); return false;"
Ou seja, o ultimo parâmetro, é a DIV que você quer esconder.

O resto continua igual...

 

Verifiquei agora, o melhor é fazer uma cópia desse função.. já q não fiz nenhum tratamento o novo parâmetro, e se você um dia resolver chamar novamente, só com os 2 primeiros, acontece um erro de execução. Mas enfim, tá ai uma idéia..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas aí você fica restrito a 2 elementos. Você tem que informar o que quer abrir e o que também quer fechar.

Talvez o ideal seja você fechar tudo e abrir a que você clicou.

Por exemplo:

 

<div class="mostra" id="1"> OI</div>
<div class="mostra" id="2"> OI DENOVO</div>
<div class="mostra" id="3"> MAIS UM OI</div>
<div class="mostra" id="4"> OI OUTRA VEZ</div>



function x(el) {
var o = document.getElementsByTagName("DIV");
for(i = 0; i < o.length; i++) {
if(o[i].className == "mostra") o[i].style.display = "none";
}

document.getElementById(el).style.display = "block";
}

É só uma sugestão...

 

Abrax!!

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.