jQuery disabilita un link

Qualcuno sa come disabilitare un link in jquery SENZA usare return false;?

In particolare, quello che sto cercando di fare è disabilitare il link di un elemento, eseguendo un clic su di esso utilizzando jquery che innesca alcune cose, quindi riabilitare quel link in modo che se viene cliccato di nuovo funziona come predefinito.

Grazie. Dave

AGGIORNAMENTO Ecco il codice. Quello che deve fare dopo che la classe .expanded è stata applicata è riabilitare il link disabilitato.

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

Questo impedirà il comportamento predefinito di un collegamento ipertestuale, che è quello di visitare l'href specificato.

Da jQuery tutorial:

Per il click e la maggior parte degli altri eventi, si

potete impedire il comportamento predefinito - qui, seguendo il link a jquery.com

  • chiamando event.preventDefault() nel gestore dell'evento

Se volete preventDefault() solo se una certa condizione è soddisfatta (qualcosa è nascosto per esempio), potreste testare la visibilità del vostro ul con la classe expanded. Se è visibile (cioè non nascosto) il link dovrebbe scattare normalmente, poiché l'istruzione if non sarà inserita, e quindi il comportamento di default non sarà impedito:

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

Prova questo:

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

EDIT-

Dal tuo codice aggiornato:

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

Basta innescare qualcosa, impostare qualche bandiera e restituire false. Se la bandiera è impostata - non fare nulla.

Commentari (1)