2010-06-05 38 views
5

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).

Odpowiedz

2

Podejrzewam, że próbujesz wywołać zdarzenie w sposób niezadowolony z przeglądarki. Gdzie jest twój program do "zmiany hash"? Sugeruję, abyś spróbował powiązać go z

$('body').bind('hashchange', function() { ... }) 

zamiast "okna". Nawet to może powodować problemy w przeglądarkach WebKit; jeśli tak, możesz utworzyć plik <div>, aby owinąć treść i powiązać z nią.

+0

Cóż, haszowanie jest zdefiniowane następująco: $ (window) .bind ('hashchange', function() {... – Jonathan

+3

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

Powiązane problemy