Pellizcando el código de la página de ejemplo, por Soh Tanaka que se refiere en su artículo:
$(document).ready(function() {
//When page loads...
$(".tab_content").hide(); //Hide all content
$("ul.tabs li:first").addClass("active").show(); //Activate first tab
$(".tab_content:first").show(); //Show first tab content
//On Click Event
$("ul.tabs li").click(function() {
$("ul.tabs li").removeClass("active"); //Remove any "active" class
$(this).addClass("active"); //Add "active" class to selected tab
$(".tab_content").hide(); //Hide all tab content
var activeTab = $(this).find("a").attr("href"); //Find the href attribute value to identify the active tab + content
$(activeTab).fadeIn(); //Fade in the active ID content
return false;
});
});
El bit crítico es arreglar el código que solamente se refiere al grupo pestaña actual a los efectos de la conmutación entre pestañas. Esto se logra asegurándose de que cuando no se desee el contexto global, solo el grupo local, cambiemos el selector. Cuando se hace referencia a un conjunto de pestañas sobre su contenido, el problema es cómo hacer coincidir una con la otra, esto puede hacerse con algún sistema común de identificación, o si se supone que las pestañas preceden a su contenido, sin superposición, entonces podemos simplemente encuentre el siguiente tab_container
a lo largo de un conjunto de pestañas.
En primer lugar, la inicialización:
$(".tab_content").hide();
fina, que desea ocultar todos ellos.
$("ul.tabs li:first").addClass("active");
$(".tab_content:first").show();
No es bueno, esto se refiere a todos los grupos de pestañas en la página, debe ser específico.
$("ul.tabs").each(function() {
$(this).find('li:first').addClass("active");
$(this).nextAll('.tab_container:first').find('.tab_content:first').show();
});
.click()
El evento comienza bien, obligando a todos los ul.tabs li
está muy bien. En el interior necesita los selectores cambiados.
$("ul.tabs li").click(function() {
var cTab = $(this).closest('li');
cTab.siblings('li').removeClass("active");
cTab.addClass("active");
cTab.closest('ul.tabs').nextAll('.tab_container:first').find('.tab_content').hide();
var activeTab = $(this).attr("href"); //Find the href attribute value to identify the active tab + content
$(activeTab).fadeIn(); //Fade in the active ID content
return false;
});
La última sección con el activeTab
ya está bien, sólo tenga cuidado de no volver a utilizar los ID.
Ver demostración:http://jsfiddle.net/uyvUZ/1/
visualmente más fácil, pero diferente de demostración:http://jsfiddle.net/uyvUZ/2/
Estás en lo correcto. – ClosDesign
link no work :( – pete