2010-08-04 17 views
6

Utilizo la etiqueta <a> para crear botones. Uso JavaScript (jQuery) para implementar el comportamiento.Usando la etiqueta <a> como un botón sin seguir su enlace

¿Cómo puedo evitar que el navegador siga un enlace mientras continúo ejecutando todos los eventos click()?

Este:

$("a.button").live("click", function(event) { return false; }); 

no funciona, ya que, dependiendo de la posición de ese manejador que puede impedir que otras .click() manipuladores de ejecución. Para algunos botones, funciona como yo quiero, pero para algunos evita que mis otros controladores se ejecuten.

Sé que podría utilizar un solo controlador de un clic por botón, pero prefiero hacerlo a la manera AOP.

Respuesta

6

jQuery proporciona un método llamado preventDefault que detendrá la acción predeterminada del evento. Con esto, el siguiente código evitará que el enlace se siga, pero no debería detener la propagación del par a otros manejadores.

$("a.button").click(function(event){ event.preventDefault(); }); 
+0

Esa es la única. Me ganaste :) –

Cuestiones relacionadas