Esto es lo que tengo básicamente:

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

Ahora, el problema es que quiero mantener al padre como un enlace, pero si el usuario hace clic en el intervalo con el evento onclick, no quiero que el navegador siga el enlace.

Lo he intentado.

event.stopPropagation();

Pero eso solo parece detener la activación del evento onclick de enlaces, o estoy haciendo algo mal.

Actualmente estoy en modo crunch y no quiero pasar mucho tiempo reescribiendo el código que genera este HTML, pero todavía no puede ser un truco ya que está implementado en una función bastante vital del sitio. Cualquier ayuda apreciada.

17
Oscar Kilhed 22 oct. 2009 a las 19:04

3 respuestas

La mejor respuesta

¡Haga que el método javascript devuelva falso!

O también puede usar event.preventDefault() en lugar de event.stopPropagation()

31
Prashanth Benny 29 sep. 2016 a las 09:46

Claro, solo devuelve falsa en el onclick

Algo como

<a href="somwhere" onclick="return false;">nothing happens</a>
8
Victor 21 may. 2015 a las 11:56
<a href="http://somelink.com">
    <span>stuff</span>
    <span onclick="AwsomeFunction(); return false;">more stuff</span>
    <span>the last stuff</span>
</a>
8
Sani Singh Huttunen 22 oct. 2009 a las 15:18