Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery] jak przechwycić zmianę anchora
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
zwierzołak
Witam,

Mam sobie menu na liście, poniżej jego fragment
Kod
<ul id="menu">
    <li><a href="plik.html#zielone">zielone</a></li>
    <li><a href="plik.html#niebieskie">niebieskie</a></li>
    <li><a href="plik.html#biale">białe</a></li>                      
</ul>


i jak kliknę którąś z tych pozycji to wczyta się "plik.html", a tam jest w $(document).ready kod, który w zależności od anchora pokazuje odpowiednią zawartość.

Mam jednak taki problem, że jak znajduję się już na stronie "plik.html" i w menu wybiorę którąś z 3 powyższych opcji to zmienia się tylko anchor, strona się nie przeładowuje i nie zachodzi $(document).ready - w rezultacie nie ładuje się odpowiednia zawartość.

Czy można jakoś przechwycić zmianę anchora? coś w stylu $(document).anchorChange smile.gif ?

//EDIT:

Spróbowałem czegoś takiego :
Kod
$("#menu").click(function() {
   $(document).trigger("ready");
   //alert("ok");
});

ale coś nie działa mi ten trigger, nie wiem czy ma w ogóle prawo takie coś zadziałać smile.gif
soomal
W tym fragmencie próbujesz wybrać a o element o id=menu, a żanego takiego elementu nie masz (z teog co pokazałeś). Nadaj tym linkom jakąś klasę i się do niej odwołuj przez $(".klasa");
zwierzołak
nie w tym problem, jest tam id="menu", tylko zapomniałem dopisać - teraz poprawiłem

Ogólnie istotą mojego problemu jest wykrycie zmiany samego anchora w adresie (location.hash) abym mógł na to zareagować
soomal
Ogólnie słabo z tym po chwili googlowania, tylko IE8 ma event onslashchange, ale możesz obejść to:
http://haineault.com/blog/37/
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.