2011-11-05 17 views

Respuesta

10
$('#tabs').tabs({ 
    select: function(event, ui) { // select event 
     $(ui.tab); // the tab selected 
     ui.index; // zero-based index 
    }, 
    show: function(event, ui) { // show event 
     $(ui.tab); // the tab shown 
     ui.index; // zero-based index 
    } 
}); 

Demo


O, si usted no desea enlazar los detectores de eventos en la inicialización puede enlazar ellos de esta manera:

$('#tabs') 
    .bind('tabsselect', function(event, ui) { // select event 
     $(ui.tab); // the tab selected 
     ui.index; // zero-based index 
    }) 
    bind('tabsshow'. function(event, ui) { // show event 
     $(ui.tab); // the tab shown 
     ui.index; // zero-based index 
    }); 
+0

Hey puede usted por favor sugieren que es mejor entre estos dos? –

+0

@HardikMishra ¡Sugeriría el primero, porque no se romperá si los nombres de los eventos cambian de alguna manera en el futuro! – Shef

+2

Esto ya no funciona desde 1.9, ui.index no está definido. –

35

Usted puede usar esto para encuentre

var $tabs = $('#tab').tabs(); 
var selected = $tabs.tabs('option', 'selected'); 

Desde jQuery 1.9 en

var $tabs = $('#tab').tabs(); 
var selected = $tabs.tabs('option', 'active'); 
+14

+1 para mostrar cómo encontrar la pestaña seleccionada fuera del programa o seleccionar eventos. No lo que pidió el OP, sino lo que necesitaba saber. – davidethell

2

acabo implementado esto en uno de mis proyectos:

var lastTab = 0; // global variable 

$(function() { 
    $('#tabs').tabs({ 
     select: function(event, ui) { 
      lastTab = ui.index; 
     } 
    }); 
}); 

Y luego cualquier otro lugar en su código puede simplemente hacer referencia a lastTab.

1

para jQuery 1.9 o posterior ...

$('#tabs').tabs({ 
    activate: function(event, ui) { 
     ui.newTab.index(); // zero-based index 
    } 
}); 
Cuestiones relacionadas