Ejemplos de contenido oculto en JS con países relacionados

fedealmendra Seguir

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
25 Oct 2010
Mensajes
124
Betas, no logro encontrar en Google ejemplos js de lo que quiero, si alguno tiene algún ejemplo que me pueda orientar se lo agradezco!

Tengo 2 listas. Una con opciones:

<ul>
<li> opción seleccionada </li>
<li> opción 1 </li>
<li> opción 2 </li>
</ul>

Esta lista quiero que "opción seleccionada" se modifique por la opción (1 o 2) cuando el usuario clickee en una de ellas. El menú ya lo tengo diseñado, opción 1 y opción 2 están escondidos y aparecen cuando pasas el mouse por encima de opción seleccionada.

Por otro lado tengo otra lista con contenido relacionado a la opción que se eligió en la lista anterior.

<li> contenido 1 </li> (asociado a opcion 2)
<li> contenido 2 </li> (asociado a opcion 2)
<li> contenido 3 </li> (asociado a opción 1)

Alguien me puede dar un ejemplo para continuar haciendo esta función? La intención es mostrar contenido de acuerdo al país, la primera lista contiene países y al clickearlo se "habilitan" ciertos elementos de la segunda lista que contiene el contenido. Hay otras formas de hacer esto, pero como el contenido es mínimo, no hay problema que cargue el de todos los países en la misma pagina y esto favorecerá a la velocidad de carga al usuario.

Gracias
 

KimHa

Curioso
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
18 Ene 2013
Mensajes
6
Hola fedealmendra

lo que quieres hacer es un sistemilla de tabs,

te he creado este pequeño script que te va a funcionar a la perfección, si entiendes la logica puedes crear scripts mucho mas complejos.... ...

VER EJEMPLO EN FUNCIONAMIENTO: Edit fiddle - JSFiddle

Codigo HTML:
HTML:
<!-- LISTA DE TABULACIONES PARA HACER CLICK
<ul id="listTabs">
	<li data-tab="1" class="seleccionada">Opcion 1</li>
	<li data-tab="2">Opcion 2</li>
	<li data-tab="3">Opcion 3</li>
</ul>


<!-- CONTENIDO DE LA PAGINA -->
<div id="tabContent">
    <div id="opcion1" class="tabBox">
        Contenido de la opcion 1 - un poco mas de texto para que se note el cambio
    </div>
    
    <div id="opcion2" class="tabBox">
        Contenido de la opcion 2 - mas texto haciendo que el cambio se note al seleccio
    </div>
    
    <div id="opcion3" class="tabBox">
        Contenido de la opcion 3 -   Otro texto para mostrarl en la opcion 3      
    </div>
</div>


el codigo de arriba contiene una lista #listTabs que es donde el usuario puede hacer clic y seleccionar la opcion que quiere, cada elemento de esa lista contiene el atributo data-tab donde indicamos un Identificador de ese elemento que mas tarde nos servira para obtener el contenido adecuado.

y tres DIV una por opcion, fijate que tienen el id="opcion1", id="opcion2", id="opcion3", esos id's siempre tienen la palabra opcion y un numero que hace referencia al elemento de la lista de arriba.

ahora vamos a hacer un poco de magia con JQuery,...

Insertar CODE, HTML o PHP:
$(document).ready(function(e) {
	
	// capturamos el evento clic sobre la lista #listTabs
	$('#listTabs li').click(function()
	{
		
		// leemos el atributo data-tab para saber de que elemento se trata
		var tab_this = $(this).attr('data-tab');
		
		// ocultamos todas las cajas del contenido antes de mostrar la correcta
		$('.tabBox').hide();
		
		// mostramos la caja adecuada dependiendo del atributo data-tab
		// lo que hemos guardado en la variable de arriba (tab_this)
		$('#opcion'+tab_this).show();
		
		// cambiamos de clase para resaltar la opcion seleccionada en la 1º lista
		$('#listTabs li').removeClass('seleccionada');
		
		// agregamos la clase al elemento sobre el que hemos hecho click.
		$(this).addClass('seleccionada');
		
	});
});

recomeindo leer lo comentarios para entender lo que hace...

y para terminar le damos un poco de estilo ...

Insertar CODE, HTML o PHP:
#listTabs li{
	display:inline;
	margin-right:15px;
	cursor:pointer;
}
#listTabs li:hover{
	text-decoration:underline;
}
.seleccionada{
	font-weight:bold
}
.tabBox{
	border:1px solid #cacaca;
	margin:20px 0;
	padding:20px;
	font-weight:bold;
	font-size:18px;
	width:250px;
}
#opcion2,#opcion3{
	display:none;
}

epero haber ayudado un poco y si tienes alguna duda ya sabes... pregunta....
 
Arriba