2012-08-05 15 views
14

Mam przycisk jako obraz ...JavaScript inline onclick goto lokalny kotwica

<img src="button.png" /> 

Potrzebuję JavaScript w onclick gdzie po kliknięciu będzie przejść do lokalnego kotwicy. Na przykład:

<img src="button.png" onclick="navigateTo #page10" /> 

Jak mogę to zrobić?

Aktualizacja: Jest to kod używam:

onclick="document.location=#goToPage';return false;" 
+0

Czy widzisz tę odpowiedź? Może to pomaga http://stackoverflow.com/questions/8908191/use-jquery-click-to-handle-anchor-onclick – devanand

+0

Czy istnieje powód, aby nie tylko owinąć obrazu w hiperłącze? –

+0

Tak, dlatego używam JQuery Mobile, który automatycznie dodaje klasy do nagłówka Satch3000

Odpowiedz

13

to wygląda onClick powinno być:

onclick="document.location+='#goToPage';return false;" 
+4

Zobacz odpowiedź Tivie poniżej. Wskazuje, że tej odpowiedzi można użyć tylko raz. Następnie dodaje dodatkowy tag #tag na końcu adresu URL i nic nie robi. – Dave

3

owinąć go w tagu zakotwiczenia. Nie musisz używać JS.

<a data-role="none" href="#page10"><img src="button.png" /></a> 
+0

Nie mogę tego zrobić w ten sposób, ponieważ jest to jquery mobile i kiedy dodaję Satch3000

+0

Według http://stackoverflow.com/ pytania/8959519/możesz dodać 'data-role =" none "' do '', aby zapobiec dodaniu dodatkowych klas – foz

+2

Właśnie otrzymałem wiadomość na ten temat, ale nadal wydaje się być najbardziej odpowiednią odpowiedzią po 6 latach. Nie wiem, dlaczego ludzie czują potrzebę nadmiernego komplikowania tego z JS. Tylko dlatego, że OP poprosił o rozwiązanie JS, nie oznacza, że ​​inne są nieprawidłowe. Bardziej do rzeczy, patrz komentarz @ foz, dlaczego wymóg JS nie jest konieczny. –

17

Rozwiązanie przedstawione w przyjętym odpowiedź ma istotny problem, który może być używany tylko 1 raz. Każde kolejne kliknięcie dołącza #goToPage do lokalizacji, a okno nie będzie nawigować do kotwicy.

Rozwiązaniem jest usunięcie części kotwicy przed dodanie nowej kotwicy:

function goToAnchor(anchor) { 
    var loc = document.location.toString().split('#')[0]; 
    document.location = loc + '#' + anchor; 
    return false; 
} 

Przykład użycia:

<a href="#anchor" onclick="goToAnchor('anchor')">Anchor</a> 

Należy zauważyć, że kotwica musi być ujęty w cudzysłów, bez przedrostka hash .

+3

To powinna być zaakceptowana odpowiedź. – Dave

+1

Najfajniejsze rozwiązanie w historii! – andresmafra

Powiązane problemy