jQuery desactivar un enlace

¿Alguien sabe cómo desactivar un enlace en jquery SIN usar return false;?

Específicamente, lo que estoy tratando de hacer es desactivar el enlace de un elemento, realizando un clic en él usando jquery que desencadena algunas cosas, y luego volver a habilitar ese enlace para que si se hace clic de nuevo que funciona como predeterminado.

Gracias. Dave

ACTUALIZACIÓN Aquí está el código. Lo que tiene que hacer después de aplicar la clase .expanded es volver a habilitar el enlace desactivado.

$('ul li').click(function(e) {
    e.preventDefault();
    $('ul').addClass('expanded');
    $('ul.expanded').fadeIn(300);
    //return false;
});
Solución
$('#myLink').click(function(e) {
    e.preventDefault();
    //do other stuff when a click happens
});

Esto evitará el comportamiento por defecto de un hipervínculo, que es visitar el href especificado.

Del [tutorial] de jQuery1:

Para el clic y la mayoría de los otros eventos, usted puede evitar el comportamiento por defecto - aquí, siguiendo el enlace a jquery.com

  • llamando a event.preventDefault() en el manejador del evento

Si quieres preventDefault() sólo si se cumple una determinada condición (algo está oculto, por ejemplo), podrías comprobar la visibilidad de tu ul con la clase expanded. Si es visible (es decir, no está oculto) el enlace debería dispararse de forma normal, ya que no se introducirá la sentencia if, y por tanto no se impedirá el comportamiento por defecto:

$('ul li').click(function(e) {
    if($('ul.expanded').is(':hidden')) {
        e.preventDefault();
        $('ul').addClass('expanded');
        $('ul.expanded').fadeIn(300);
    } 
});
Comentarios (4)

Prueba esto:

$("a").removeAttr('href');

EDIT-

De su código actualizado:

 var location= $('#link1').attr("href");
 $("#link1").removeAttr('href');
 $('ul').addClass('expanded');
 $('ul.expanded').fadeIn(300);
 $("#link1").attr("href", location);
Comentarios (2)

Sólo dispara cosas, establece alguna bandera, devuelve false. Si la bandera se establece - no hacer nada.

Comentarios (1)