2013-07-25 13 views

Odpowiedz

4

Oprócz aktualizacji hasza na zmianie zakładki (z zdarzeniem beforeActivate, jak w odpowiedzi Shruggernauta) bardzo przydatne jest zaktualizowanie aktywnej karty przy zmianie hasza (tj. Włączenie historii przeglądarki, przyciski wstecz/do przodu i wpisanie użytkownika w haśle ręcznie):

$(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

* To * to dobre rzeczy. Żałuję, że nie otrzymałem tego kodu, gdy to pytanie było trafne. – Kehlan

17

użyć tego kodu do tworzenia kart jQuery UI:

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

Stworzyłem tę odpowiedź, ponieważ nie mogę znaleźć ani jednego z metodą up-to-date. Mam nadzieję, że to pomoże komuś innemu!

+1

FYI - W starszej wersji jQuery, jest to 'wybierz' zamiast 'beforeActivate' –

+0

FYI-2 - W starszej wersji jQuery, jest to 'ui.panel.id' zamiast „ui .newPanel.selector "(przynajmniej to zadziałało dla mnie) –