Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Problemas con un if

Estas en el tema de Problemas con un if en el foro de Javascript en Foros del Web. Tengo una función para hacer que aparezca y desaparezca un texto al pulsar un link. Entonces el texto a aparece pero al pulsar de nuevo ...
  #1 (permalink)  
Antiguo 14/05/2014, 16:47
 
Fecha de Ingreso: noviembre-2009
Mensajes: 90
Antigüedad: 14 años, 5 meses
Puntos: 0
Problemas con un if

Tengo una función para hacer que aparezca y desaparezca un texto al pulsar un link. Entonces el texto a aparece pero al pulsar de nuevo no desaparece. Este es el codigo.

Código:
<a href="#" onclick="cambiar('oculto'); return false;" class="l_lorena">Por que no hay dos personas iguales,<br>
no puede haber dos personas iguales.</a>
<div id="oculto" style="display: none;">
<p class="toculto">"Cada persona necesita comunicar algo distinto  con su imagen, que no es ajeno a su entoprno personal o al escenario de tendencias actuales, por eso mi método consiste encrear tendencia en exclusiva en cada cliente"</p>
</div><br>


<a href="#" onclick="cambiar2('oculto2'); return false;" class="l_lorena">Yo no sigo tendencias,<br>
soy la tendencia.</a>
<div id="oculto2" style="display: none;">
<p class="toculto">"Un método que profundiza en la necesidad de cada client de ser uno mismo, de expresarse desde su propia tendencia concebida por Lorena a partir de su fisionomía física y su entorno social. Tú imagen habla de tí, que diga algo único."</p>
</div><br>


<a href="#" onclick="cambiar3('oculto3'); return false;" class="l_lorena">Unos clientes muy especiales.</a>
<div id="oculto3" style="display: none;">
<p class="toculto">"CAMBIAR!!!!"</p>
</div><br>
Cita:
function cambiar(oculto)
{
if(document.getElementById(oculto).style.display = ''){
document.getElementById(oculto).style.display = 'none';

} else {

document.getElementById(oculto).style.display = '';
document.getElementById(oculto2).style.display = 'none';
document.getElementById(oculto3).style.display = 'none';

}
}



function cambiar2(oculto2)
{
if(document.getElementById(oculto2).style.display = ''){
document.getElementById(oculto2).style.display = 'none';


} else {

document.getElementById(oculto2).style.display = '';
document.getElementById(oculto).style.display = 'none';
document.getElementById(oculto2).style.display = 'none';

}
}

function cambiar3(oculto3)
{
if(document.getElementById(oculto3).style.display = ''){
document.getElementById(oculto3).style.display = 'none';


} else {

document.getElementById(oculto3).style.display = '';
document.getElementById(oculto).style.display = 'none';
document.getElementById(oculto2).style.display = 'none';

}
}
  #2 (permalink)  
Antiguo 14/05/2014, 17:17
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Problemas con un if

En lugar de hacer la comparación de esta forma:

Código Javascript:
Ver original
  1. if (document.getElementById(oculto2).style.display = '')

Hazlo así:

Código Javascript:
Ver original
  1. if (document.getElementById(oculto2).style.display != 'none')

Ten en cuenta que cuando realizas una comparación, debes de utilizar dos signos de igualdad, porque con uno solo asignas un valor, mas no lo comparas. Por otro lado, para verificar que un elemento es visible, basta con que el valor de la propiedad display sea distinto a none.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 14/05/2014, 18:27
 
Fecha de Ingreso: noviembre-2009
Mensajes: 90
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Problemas con un if

Ya lo conseguí, muchas gracias :), lo deje así

Código:
function cambiar(oculto)
{
	if(document.getElementById(oculto).style.display == 'none'){
	document.getElementById(oculto).style.display = '';
	document.getElementById(oculto2).style.display = 'none';
	document.getElementById(oculto3).style.display = 'none';

	} else {
	document.getElementById(oculto).style.display = 'none';
	document.getElementById(oculto2).style.display = 'none';
	document.getElementById(oculto3).style.display = 'none';
	}
}



function cambiar2(oculto2)
{
	if (document.getElementById(oculto2).style.display == 'none'){
	document.getElementById(oculto2).style.display = '';
	document.getElementById(oculto).style.display = 'none';
	document.getElementById(oculto3).style.display = 'none';
	

	} else {
	
	document.getElementById(oculto2).style.display = 'none';
	document.getElementById(oculto).style.display = 'none';
	document.getElementById(oculto2).style.display = 'none';
	
}
}

function cambiar3(oculto3)
{
	if(document.getElementById(oculto3).style.display == 'none'){
	document.getElementById(oculto3).style.display = '';
	document.getElementById(oculto).style.display = 'none';
	document.getElementById(oculto2).style.display = 'none';
	} else {
	
	document.getElementById(oculto3).style.display = 'none';
	document.getElementById(oculto).style.display = 'none';
	document.getElementById(oculto2).style.display = 'none';
	
}
}
Y ahora para que al mostrar un párrafo se cierren los demás (en caso de estar abiertos), como seria por que de esta manera al ser 3 funciones diferentes no se podría no? tendría que ser una única función.
  #4 (permalink)  
Antiguo 14/05/2014, 18:49
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Respuesta: Problemas con un if

@Borha : deberias re-factorizar o si sigues agregando enlaces te vas a volver chino

En vez de:

Cita:
onclick="cambiar2('oculto2');"
... podrias hacer:

Cita:
onclick="cambiar2(this);"
Lo que te permitira re-factorizar las N-funciones cambiar_i() a cambiar(enlace)
__________________
Salu2!
  #5 (permalink)  
Antiguo 15/05/2014, 09:26
 
Fecha de Ingreso: diciembre-2013
Mensajes: 108
Antigüedad: 10 años, 4 meses
Puntos: 1
Respuesta: Problemas con un if

Estas usando el metodo super antiguo te recomiendo que leas un poco mas de js, te doy una pista con un hide() y show() lo haces sin ningun problema. salu2
  #6 (permalink)  
Antiguo 15/05/2014, 09:54
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Respuesta: Problemas con un if

Cita:
Iniciado por videlxu Ver Mensaje
Estas usando el metodo super antiguo te recomiendo que leas un poco mas de js, te doy una pista con un hide() y show() lo haces sin ningun problema. salu2
Eso que dices es con un framework (jQuery) con con JS a secas

Para eso que use toggle() en jQ y no escribe nada
__________________
Salu2!
  #7 (permalink)  
Antiguo 15/05/2014, 10:10
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Problemas con un if

Cita:
Iniciado por videlxu Ver Mensaje
con un hide() y show() lo haces sin ningun problema.
Esos son métodos de jQuery, mientras que este es el foro de JavaScript, en donde se trabaja con código nativo.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #8 (permalink)  
Antiguo 18/05/2014, 08:29
 
Fecha de Ingreso: noviembre-2009
Mensajes: 90
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Problemas con un if

Ya lo conseguí, gracias a todos :)

Etiquetas: funcion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:14.