2009-10-22 12 views
11

To jest to, co mam w zasadzie:Czy można zatrzymać przeglądarkę po kliknięciu łącza po uruchomieniu kliknięcia onclick elementu potomnego?

<a href="http://somelink.com"> 
    <span>stuff</span> 
    <span onclick="AwesomeFunction();">more stuff</span> 
    <span>the last stuff</span> 
</a> 

Teraz problem jest chcę zachować rodzica jako link, ale jeśli użytkownik kliknie przęsło ze zdarzeniem onclick nie chcę przeglądarkę do naśladowania połączenie.

Próbowałem

event.stopPropagation(); 

ale to tylko wydaje się zatrzymać powiązań zdarzenie onclick z wypalania, czy robię coś źle.

Jestem obecnie trochę w trybie chrupania i nie chcę spędzać zbyt wiele czasu na przepisywaniu kodu, który generuje ten kod HTML, ale nadal nie może być hakiem, ponieważ jest zaimplementowany w dość istotnej funkcji Strona. Każda pomoc doceniona.

Odpowiedz

25

Bądź metoda javascript return false!

Albo można też użyć event.preventDefault() zamiast event.stopPropagation()

+3

'' 'event.preventDefault()' '' nie jest jQuery. To po prostu dobry staroświecki JavaScript. –

8

pewien, po prostu return false w onclick

coś

<a href="somwhere" onclick="return false;">nothing happens</a> 
+2

Cóż ... To nie do końca prawda. Nadal chce, aby następował link, gdy kliknie inne przęsła. Ten kod zatrzyma przeglądarkę od kliknięcia linku. Nie tylko rozpiętość z wydarzeniem onClick. –

+1

to tylko przykład A, który nie podąża za swoim ontherem ... – Victor

8
<a href="http://somelink.com"> 
    <span>stuff</span> 
    <span onclick="AwsomeFunction(); return false;">more stuff</span> 
    <span>the last stuff</span> 
</a> 
Powiązane problemy