Mam tę wtyczkę jQuery ajax Tabs, którą utworzyłem przy pomocy wtyczki CSS-Tricks.com i jQuery hashchange event (wykrywa zmiany hash w przeglądarkach nie obsługuje tego).
Kod jest trochę długi, aby opublikować go tutaj, ale to idzie mniej więcej tak:
część 1) W przypadku gdy karta jest kliknięty, robi atrybutu href tej karcie i dodać go do paska przeglądarki nawigacyjnych '#tab_name': window.location.hash = $(this).attr("href");
Part 2) Gdy zmienia się pasek nawigacyjny (zmiana hash), to dostaje href zmianę takiego: window.location.hash.substring(1);
(podciąg jest dostać tylko 'TAB_NAME' bez '#'), a następnie wywołaj funkcję ajax, aby uzyskać informacje do wyświetlenia.
Chcę automatycznie wyzwalać plugin załadować kartę pierwszy, gdy strona jest dostępna, więc na początku kodu kładę:
if (window.location.hash === '') { // If no '#' is in the browser navigation bar
window.location.hash = '#tab_1'; // Add #tab_1 to the navigation bar
$(window).trigger('hashchange'); // Trigger a hashchange so 'Part 2' of the plugin calls the ajax function using the '#tab_1' added
}
The probles jest to, że działa w FF, ale nie w Chrom, mam na myśli, wszystko działa, ale wygląda na to, że $(window).trigger('hashchange');
nie działa, ponieważ nie dostaje pierwszej zakładki ..
Jakieś sugestie?
Uwaga: działało jakiś czas temu, ale nagle nie działa (może aktualizacja Chrome).
Cóż, haszowanie jest zdefiniowane następująco: $ (window) .bind ('hashchange', function() {... – Jonathan
Znalazłem problem, dzwoniłem $ (okno) .trigger ('hashchange') ; zanim hashcnage zostało zdefiniowane w $ (window) .bind ('hashchange', function() {... Thanks por wskazuje mnie na kierunek! – Jonathan