Ir para conteúdo

POWERED BY:

Arquivado

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

Hebe

Diminuir codigo

Recommended Posts

Bom dia pessoal, tenho mais um problema para resolver... eu fiz um codigo que oculta e faz aparecer divs por id. O codigo esta rolando bem mas gostaria, se possivel, diminuir caracteres pois ficou muito repetitivo...

function ver1(){document.getElementById('c2').style.display='none';document.getElementById('c3').style.display='none';document.getElementById('c4').style.display='none'}

functionver2(){document.getElementById('c2').style.display='none';document.getElementById('c3').style.display='block';document.getElementById('c4').style.display='block';document.getElementById('c5').style.display='none';document.getElementById('cm1').style.display='block';document.getElementById('cm2').style.display='block';document.getElementById('cm3').style.display='none'}

function ver3(){document.getElementById('c2').style.display='block';document.getElementById('c3').style.display='none';document.getElementById('cm1').style.display='none';document.getElementById('cm2').style.display='none'}

function ver4(){document.getElementById('c2').style.display='block';document.getElementById('c3').style.display='none';document.getElementById('c4').style.display='none';document.getElementById('c5').style.display='block';document.getElementById('cm1').style.display='block';document.getElementById('cm2').style.display='none';document.getElementById('cm3').style.display='none'}

function ver5(){document.getElementById('c4').style.display='block';document.getElementById('c5').style.display='none';document.getElementById('cm1').style.display='none'}

function ver6(){document.getElementById('c2').style.display='block';document.getElementById('c3').style.display='none';document.getElementById('c4').style.display='block';document.getElementById('c5').style.display='none';document.getElementById('c6').style.display='none';document.getElementById('c7').style.display='block';document.getElementById('cm1').style.display='none';document.getElementById('cm2').style.display='none'}

function ver7(){document.getElementById('c6').style.display='block';document.getElementById('c7').style.display='none'}
Eu ja tentei de diversas maneiras mas nao tive sucesso, exemplos:

function ver6(){document.getElementById('c2,c4').style.display='block';document.getElementById('c3,c5').style.display='none'}

function ver6(){document.getElementById('c2')('c4').style.display='block';document.getElementById('c3')('c5').style.display='none'}

function ver6(){document.getElementById('c2'),('c4').style.display='block';document.getElementById('c3'),('c5').style.display='none'}
Alguma sugestao? Obrigada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Hebe! Td bem?

 

Você pode utilizar argumentos (parâmetros) dinâmicos nesse caso. Ou seja, a função vai se adaptar á quantidade de parâmetros que você passar! E desta forma ela serve tanto para mostrar quando para ocultar um elemento (usando um mesmo botão).

Assim:

function ver() {
	if(arguments.length > 0) {
		for(i=0; i<arguments.length; i++) {
			var el = document.getElementById(arguments[i]);
			el.style.display = (el.style.display=="none")?"block":"none";
		}
	}
}

Um exemplo de chamada:

ver("c1","c2","c3","c4");

 

outro exemplo:

ver("c1","c8");

 

Entendeu?

 

T+! :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu estou bem berkowitz! E você?

 

Obrigada pela ajuda mas ja tentei fazer desse jeito mais nao funcionou, porque... existe situacoes distintas no mesmo link, exemplo:

 

BOTAO 1 - BOTAO 2 - BOTAO 3

 

IMAGEM 1 - IMAGEM 2 - IMAGEM 3

 

Quando aperto o BOTAO 1 aparce a IMAGEM 1 e oculta a IMAGEM 2 + IMAGEM 3

 

E quando aperto o BOTAO 1 deveria oculatar a IMAGEM 1 + IMAGEM 3 deichando a IMAGEM 2 visivel.

 

Na verdade, e um pouco mais complicado, mas fiz desse modo para melhor entendimento, se eu utilizar o argumentos (parâmetros) dinâmicos o resultado nao seria o desejado...

 

Quando aperto o BOTAO 1 ocultar a IMAGEM 1 e aparecer a IMAGEM 2 + IMAGEM 3

 

Entendeu? Dados ocultos as vezes tem que permanecer oculto quando ja oculto e outras vezes tem que aparecer... Obrigada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi berkowitz, tive uma ideia que pode funcionar... mas preciso de ajuda.

O codigo que você fez vai funcionar pois posso determinar quais os divs vao aparecer ou ocultar no link, mas para isso tenho que fazer uma modificao em seu codigo.

Na verdade serao dois codigos, um somente para ocultar e outro para visualizar. VER1 E VER2

Deste modo posso determinar no link quais vao aparcer e sumir utilizando somente dois codigos e nao todo aqueles que fiz.

 

Tudo isso utilizando os exemplos de chamada:

ver("c1","c2","c3","c4");

 

ver("c1","c8");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Perfeito! Eu faria exatamente da mesma forma! Só mudaria o nome das funções pra ajudar (tipo MOSTRAR e ESCONDER).

 

Que bom que te ajudou! eheheh

 

BJÃO!!! http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tentei simplificar o codigo o que esta errado?

 

function mostrar() {document.getElementById(style.display='none')}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tudo!!! rsss....

 

Da forma que está você está tentanto procurar um elemento chamado style.display='none' e não está tentando fazer nada com ele!

document.getElementById() serve para você "pegar" um elemento atrravés do seu ID e fazer os devidos tratamentos, entendeu?

 

A função que montei está boa! Não da pra simplificar mais....

O que da pra gente fazer é um esqueminha seguindo o que você pensou, porém ao invés de fazer 2 funções teríamos apenas 1 e cada objeto que você passasse levaria junto o que deve "acontecer" com ele.

 

Assim:

function ver() {
	if(arguments.length > 0) {
		for(i=0; i<arguments.length; i++) {
			var newArg = arguments[i].split("|");
			document.getElementById(newArg[0]).style.display = newArg[1];
		}
	}
}

Aí a chamada da função fica assim:

ver("c1|block","c2|none","c3|none","c4|block");

 

Entendeu? Não sou bom pra explicações mas espero que tenha conseguido te mostrar como funciona! rs...

 

BJÃO!!!

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.