2013-07-25 8 views

risposta

4

Oltre all'aggiornamento dell'hash sul cambiamento di tabulazione (con l'evento beforeActivate come nella risposta di Shruggernaut) è molto utile aggiornare la scheda attiva in caso di modifica dell'hash (ovvero abilitare manualmente la cronologia del browser, i pulsanti Indietro/Avanti e digitare manualmente l'hash):

$(window).on('hashchange', function() { 
    if (!location.hash) { 
    $('#tabs').tabs('option', 'active', 0); // activate first tab by default 
    return; 
    } 
    $('#tabs > ul > li > a').each(function (index, a) { 
    if ($(a).attr('href') == location.hash) { 
     $('#tabs').tabs('option', 'active', index); 
    } 
    }); 
}); 
+1

* Questo * è roba buona. Vorrei avere questo codice indietro quando questa domanda era rilevante. – Kehlan

17

Usa questo codice per creare le schede jQuery UI:

$('#tabs').tabs({ 
    beforeActivate: function (event, ui) { 
     window.location.hash = ui.newPanel.selector; 
    } 
}); 

Ho creato questa risposta, perché non riesco a trovare una singola con un metodo up-to-date. Spero che questo aiuti qualcun altro!

+1

CRONACA - Nella vecchia versione di jQuery, è 'selezionare' invece di 'beforeActivate' –

+0

FYI-2 - Nella versione precedente di jQuery, è 'ui.panel.id' invece di 'ui .newPanel.selector '(almeno questo ha funzionato per me) –