Quelqu'un sait comment désactiver un lien dans jquery SANS utiliser return false;
?
Plus précisément, ce que j'essaie de faire est de désactiver le lien d'un élément, d'effectuer un clic dessus en utilisant jquery qui déclenche certaines choses, puis de réactiver ce lien afin que s'il est cliqué à nouveau, il fonctionne par défaut.
Merci. Dave
MISE À JOUR
Voici le code. Ce qu'il doit faire après l'application de la .expanded
classe, c'est de réactiver le lien désactivé.
$('ul li').click(function(e) {
e.preventDefault();
$('ul').addClass('expanded');
$('ul.expanded').fadeIn(300);
//return false;
});
Réponses:
Cela empêchera le comportement par défaut d'un lien hypertexte, qui consiste à visiter le href spécifié.
À partir du didacticiel jQuery :
Si vous le souhaitez
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 développée . S'il est visible (c'est-à-dire non masqué), le lien doit se déclencher normalement, car l'instruction if ne sera pas saisie, et donc le comportement par défaut ne sera pas empêché:la source
Essaye ça:
ÉDITER-
À partir de votre code mis à jour:
la source
href="#"
Pour ceux qui sont venus ici via Google comme moi - voici une autre approche:
Rappelez-vous: non seulement c'est une classe CSS
mais aussi ces deux
vous pouvez donc facilement ajouter et supprimer d'autres classes avec jQuery. Pas besoin de toucher href ...
J'adore jQuery! ;-)
la source
on()
pour filtrer tous lesa.disabled
liens et éviter les défauts. Ensuite, tout ce que vous avez à faire est d'activer / désactiver la classe désactivée et le lien se manipulera lorsqu'il est "activé".if(disabledCondition)
== true
. :)if ($(this).hasClass('disabled')) { e.preventDefault(); }
?Voici une autre solution css / jQuery que je préfère pour sa concision et son script minimisé:
css:
jQuery:
la source
.prop("tabindex", "-1");
après leaddClass
Vous pouvez supprimer le clic pour le lien en suivant;
Vous pouvez réactiver le lien en suivant,
Vous ne pouvez pas utiliser la propriété «désactivé» pour les liens.
la source
Si vous suivez la route href, vous pouvez l'enregistrer
Pour désactiver:
Réactivez ensuite en utilisant:
Dans un cas, j'ai dû le faire de cette façon car les événements de clic étaient déjà liés ailleurs et je n'avais aucun contrôle sur celui-ci.
la source
J'utilise toujours cela dans jQuery pour désactiver les liens
la source
$("form a").attr("disabled", false);
pour leexemple de lien html:
utiliser ceci dans jQuery
ajoutez ceci à css:
la source
pointer-events: none
propriété des éléments d'ancrage, ils reviennent à faire ce qu'ils ont fait précédemment lorsque vous cliquez dessus. Donc, s'il s'agissait d'hyperliens de base, ils reviennent à la navigation vers l'URL dans leurhref
attribut, et s'ils ont un gestionnaire d'événements de clic défini, cela redevient actif. Beaucoup plus simple que d'enregistrer deshref
valeurs et des gestionnaires de clics.Mes favoris dans "Commander pour modifier un article et empêcher les clics sauvages de l'ouest sauvage vers n'importe où- pendant une commande"
Donc, si je veux que tous les liens externes dans une deuxième barre d'outils d'action soient désactivés en "mode édition" comme décrit ci-dessus, j'ajouterai la fonction d'édition
Exemple de lien après un incendie:
Et maintenant, vous pouvez utiliser la propriété désactivée pour les liens
À votre santé!
la source
Vous devriez trouver votre réponse ici .
Merci @Will et @Matt pour cette solution élégante.
la source
vous pouvez simplement masquer et afficher le lien comme vous le souhaitez
la source
Déclenchez simplement des éléments, définissez un indicateur, renvoyez false. Si le drapeau est défini - ne faites rien.
la source
unbind()
est déconseillé dansjQuery 3
, utilisezoff()
plutôt la méthode:la source
Je sais que ce n'est pas avec jQuery mais vous pouvez désactiver un lien avec quelques CSS simples:
le HTML ressemblerait
la source
Cela fonctionne pour les liens dont l'attribut onclick est défini en ligne. Cela vous permet également de supprimer plus tard le "retour faux" afin de l'activer.
la source
Utilisez simplement
$("a").prop("disabled", true);
. Cela désactivera vraiment l'élément de lien. Doit êtreprop("disabled", true)
. Ne pas utiliserattr("disabled", true)
la source