jQuery désactiver un lien

Quelqu'un sait-il comment désactiver un lien dans jquery SANS utiliser return false; ?

Plus précisément, ce que j'essaie de faire, c'est de désactiver le lien d'un élément, en effectuant un clic dessus à l'aide de jquery, ce qui déclenche certaines choses, puis en réactivant ce lien de sorte que s'il est cliqué à nouveau, il fonctionne comme par défaut.

Merci. Dave

MISE À JOUR Voici le code. Ce qu'il doit faire après que la classe .expanded ait été appliquée est de réactiver le lien désactivé.

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

Cela empêchera le comportement par défaut d'un hyperlien, qui consiste à visiter le href spécifié.

Extrait du [tutoriel] de jQuery[1] :

Pour le clic et la plupart des autres événements, vous pouvez empêcher le comportement par défaut - ici, en suivant le lien vers jquery.com

  • en appelant event.preventDefault() dans le gestionnaire d'événement.

Si vous voulez preventDefault() uniquement si une certaine condition est remplie (quelque chose est caché par exemple), vous pouvez tester la visibilité de votre ul avec la classe expanded. S'il est visible (c'est-à-dire s'il n'est pas caché), le lien devrait se déclencher normalement, car l'instruction if ne sera pas saisie, et le comportement par défaut ne sera donc pas empêché :

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

[1] : http://docs.jquery.com/Tutorials:How_jQuery_Works

[1] : http://docs.jquery.com/Tutorials:How_jQuery_Works

Commentaires (4)

Essayez ça :

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

EDIT-

A partir de votre code mis à jour :

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

Il suffit de déclencher des trucs, de mettre un drapeau, de retourner faux. Si le drapeau est activé - ne rien faire.

Commentaires (1)