2011-09-08 33 views
49

Al usar Google, descubrí que están usando eventos onclick en las etiquetas de anclaje.Etiqueta de ancla HTML con el evento onclick de Javascript

En más opción en la parte del encabezado de Google, parece una etiqueta normal, pero al hacer clic en ella no se le redirige sino que se abre un menú. Normalmente cuando se utiliza

<a href='more.php' onclick='show_more_menu()'>More >>></a> 

Por lo general, va a 'more.php' sin disparar show_more_menu(), pero tengo que mostrar un menú en el que la página en sí. ¿Cómo hacer como google?

Respuesta

76

Si su función onclick devuelve falso, se cancela el comportamiento predeterminado del navegador. Como tal:

<a href='http://www.google.com' onclick='return check()'>check</a> 

<script type='text/javascript'> 

function check() 
{ 
    return false; 
} 

</script> 

De cualquier manera, si Google lo hace o no no es de mucha importancia. Es más sencillo vincular las funciones de un clic en javascript, de esta forma se separa el código HTML de otro código.

+2

1. Para ser más seguro, utiliza un # en href = "#" y hacer las cosas necesarias en el javascript. Es seguro hacer clic en ese enlace con # href; la página deja/recarga url. –

32

Por lo que entiendo, no desea redirigir cuando se hace clic en el enlace. Usted puede hacer:

<a href='javascript:;' onclick='show_more_menu();'>More ></a> 
+0

Esto es útil cuando no desea que el href apunte a ninguna parte. – kbpontius

+0

Es genial y funciona, pero jquery arroja un error "Error: error de sintaxis, expresión no reconocida: javascript :;" – TheOddCoder

40

Puede incluso intentar a continuación la opción:

<a href="javascript:show_more_menu();">More >>></a> 
+0

Advertencia: Si la función devuelve un valor explícito (por ejemplo, 'return null;', pero no 'return;'), esto tendrá consecuencias imprevistas en algunos navegadores, como FireFox. La página tendrá todo el contenido reemplazado por el valor devuelto en formato de cadena (por ejemplo: '[object Object]'). – rannmann

+0

Me da un error 'La función no está definida'. –

Cuestiones relacionadas