Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Mostrar / ocultar un contenido

Estas en el tema de Mostrar / ocultar un contenido en el foro de Jquery en Foros del Web. Hola, Tengo este código Jquery dentro de la sección head, para mostrar / ocultar un contenido cuando pincho sobre un elemento de una lista ordenada: ...
  #1 (permalink)  
Antiguo 27/05/2013, 02:07
 
Fecha de Ingreso: octubre-2008
Mensajes: 276
Antigüedad: 15 años, 6 meses
Puntos: 1
Mostrar / ocultar un contenido

Hola,

Tengo este código Jquery dentro de la sección head, para mostrar / ocultar un contenido cuando pincho sobre un elemento de una lista ordenada:

Código:
		$(document).ready(function(){
			estado=0;						   
			$("#muestraElemento").click(function () { 
			   if(estado==0) {
				 $('#contenidoGeneradoPorElemento').slideUp('fast');
				 $('#muestraElemento').html('<li>Elemento</li>');
				 estado=1;
			  } else {
				 $('#contenidoGeneradoPorElemento').slideDown('fast');
				 $('#muestraElemento').html('<li>Elemento</li>');
				 estado=0;
			  }
			});
		});
el elemento lo tengo dentro de la sección body del html:

Código:
	<body>
		<ol>
			<a id="muestraElemento" href="#"><li>Elemento</li></a>
			<div id="contenidoGeneradoPorElemento">
				<p>descripcion</p>
			</div>	
		</ol>	
	</body>
Como veis, la función es dependiente de que el identificador del elemento de la lista ordenada sea "muestraElemento" y de que el identificador del div sea "contenidoGeneradoPorElemento". ¿Cómo puedo hacerlo genérico?

El código completo:

Código:
<html>
	<head> 
		<title>Prueba</title> 
		<script language="javascript" src="jquery-1.3.2.min.js">
		</script>
		<script language="javascript">
		$(document).ready(function(){
			estado=0;						   
			$("#muestraElemento").click(function () { 
			   if(estado==0) {
				 $('#contenidoGeneradoPorElemento').slideUp('fast');
				 $('#muestraElemento').html('<li>Elemento</li>');
				 estado=1;
			  } else {
				 $('#contenidoGeneradoPorElemento').slideDown('fast');
				 $('#muestraElemento').html('<li>Elemento</li>');
				 estado=0;
			  }
			});
		});
		</script>
	</head>
	<body>
		<ol>
			<a id="muestraElemento" href="#"><li>Elemento</li></a>
			<div id="contenidoGeneradoPorElemento">
				<p>descripcion</p>
			</div>
			<a id="muestraElemento2" href="#"><li>Elemento2</li></a>
			<div id="contenidoGeneradoPorElemento2">
				<p>descripcion2</p>
			</div>
		</ol>	
	</body>
</html>
Saludos.
__________________
Uso Apache 2.2 con PHP 5.5.9 y MySQL 5.1
Uso Eclipse IDE for Java Developers, Version: Mars.1 Release (4.5.1), Build id: 20150924-1200 para programar en Java bajo Windows
  #2 (permalink)  
Antiguo 27/05/2013, 10:36
(Desactivado)
 
Fecha de Ingreso: abril-2013
Ubicación: rosario
Mensajes: 248
Antigüedad: 11 años
Puntos: 17
Respuesta: Mostrar / ocultar un contenido

Código:
$(document).ready(function(){
			estado=0;						   
			$("ol a").click(function () { 
                             var _this = $(this);
			   if(estado==0) {
				 $('#contenidoGeneradoPorElemento').slideUp('fast');
				 $(_this).html('<li>Elemento</li>');
				 estado=1;
			  } else {
				 $('#contenidoGeneradoPorElemento').slideDown('fast');
				 $(_this).html('<li>Elemento</li>');
				 estado=0;
			  }
			});
		});
ahora nose si #contenidoGeneradoPorElemento tambien es dinamico, si es asi agregale un atributo al <a> y tomalo en el evento click
  #3 (permalink)  
Antiguo 27/05/2013, 10:49
 
Fecha de Ingreso: octubre-2008
Mensajes: 276
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Mostrar / ocultar un contenido

Sí, es dinámico, ¿cómo le meto un atributo?
__________________
Uso Apache 2.2 con PHP 5.5.9 y MySQL 5.1
Uso Eclipse IDE for Java Developers, Version: Mars.1 Release (4.5.1), Build id: 20150924-1200 para programar en Java bajo Windows
  #4 (permalink)  
Antiguo 27/05/2013, 10:55
(Desactivado)
 
Fecha de Ingreso: abril-2013
Ubicación: rosario
Mensajes: 248
Antigüedad: 11 años
Puntos: 17
Respuesta: Mostrar / ocultar un contenido

Código:
               <ol>
			<a  alt="mivalor" id="muestraElemento" href="#"><li>Elemento</li></a>
			
		</ol>
yo dirira q tomes el id, ya que es unico, sino agrega otro atributo como el que yo agregue alt="mivalor", luego lo recuperas asi.
Código:
$("ol a").click(function () { 
                             var _this = $(this);
                             var contenedorHijo = _this.attr('id');
			   if(estado==0) {
				 $('#contenidoGeneradoPorElemento').slideUp('fast');
				 $(_this).html('<li>Elemento</li>');
				 estado=1;
			  } else {
				 $('#'+contenedorHijo ).slideDown('fast');
				 $(_this).html('<li>Elemento</li>');
				 estado=0;
			  }
			});
  #5 (permalink)  
Antiguo 27/05/2013, 10:56
 
Fecha de Ingreso: octubre-2008
Mensajes: 276
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Mostrar / ocultar un contenido

Lo pruebo y te cuento.

Muchas gracias.
__________________
Uso Apache 2.2 con PHP 5.5.9 y MySQL 5.1
Uso Eclipse IDE for Java Developers, Version: Mars.1 Release (4.5.1), Build id: 20150924-1200 para programar en Java bajo Windows
  #6 (permalink)  
Antiguo 28/05/2013, 01:11
 
Fecha de Ingreso: octubre-2008
Mensajes: 276
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Mostrar / ocultar un contenido

Funciona a la perfección. Muchas gracias.
__________________
Uso Apache 2.2 con PHP 5.5.9 y MySQL 5.1
Uso Eclipse IDE for Java Developers, Version: Mars.1 Release (4.5.1), Build id: 20150924-1200 para programar en Java bajo Windows

Etiquetas: contenido
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 22:42.