2009-10-22 7 views
11

Esto es lo que tengo básicamente:¿Es posible detener el navegador al seguir el enlace cuando se activa el clic del elemento secundario?

<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 lapso con el evento onclick no quiero seguir el navegador el enlace.

He intentado

event.stopPropagation(); 

pero que sólo parece detener los enlaces evento onclick de la cocción, o que estoy haciendo algo mal.

Actualmente estoy en modo crujido y no quiero pasar demasiado tiempo reescribiendo el código que genera este HTML, pero todavía no puede ser un hack ya que se implementa en una función bastante vital de el sitio. Cualquier ayuda apreciada.

Respuesta

25

hacer que el método javascript return false!

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

+3

'' 'event.preventDefault()' '' no es jQuery. Es solo un buen JavaScript antiguo. –

8

seguro, simplemente return false en el onclick

algo así como

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

Bueno ... Eso no es del todo bien. Todavía quiere seguir el enlace cuando hace clic en los otros tramos. Este código impedirá que el navegador siga el enlace y haga clic en él. No solo el lapso con el evento onClick. –

+1

que es solo un ejemplo de una A que no sigue su href onclick ... – Victor

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