Comment rendre un lien d’ancrage non cliquable ou désactivé?

J’ai un lien d’ancrage que je veux désactiver une fois que l’utilisateur clique dessus. Ou, supprimez la balise d’ancrage autour du texte, mais conservez définitivement le texte.

some text 

Je peux le faire facilement avec un bouton en ajoutant .attr("disabled", "disabled");
J’ai ajouté avec succès la propriété désactivé, mais le lien était toujours cliquable.
Je ne m’inquiète pas vraiment si le texte est souligné ou non.

Des indices?

Lorsque vous cliquez sur le mauvais musicien, il suffit d’append “Wrong” et de ne plus pouvoir cliquer.
Lorsque vous cliquez et que vous avez raison, vous devez append “Awesome”, puis désactiver tous les tags .

Je viens de réaliser ce que vous demandiez (j’espère). Voici une solution moche

 var preventClick = false; $('#ThisLink').click(function(e) { $(this) .css('cursor', 'default') .css('text-decoration', 'none') if (!preventClick) { $(this).html($(this).html() + ' lalala'); } preventClick = true; return false; }); 

La méthode la plus propre consisterait à append une classe avec pointer-events: none lorsque vous souhaitez désactiver un clic. Cela fonctionnerait comme une étiquette normale.

 .disableClick{ pointer-events: none; } 

La réponse sélectionnée n’est pas bonne.

Utilisez le style CSS d’ événements-pointeur . (comme l’a suggéré Jason MacDonald)

Voir https://developer.mozilla.org/en-US/docs/Web/CSS/pointer-events . Son support dans la plupart des navigateurs.

L’ajout simple de l’atsortingbut “disabled” à l’ancre fera l’affaire si vous avez une règle CSS globale comme suit:

 a[disabled], a[disabled]:hover { pointer-events: none; color: #e1e1e1; } 
 $('a').removeAttr('href') 

ou

 $('a').click(function(){ return false}) 

Cela dépend de la situation

Ajouter une classe css :

 .disable_a_href{ pointer-events: none; } 

Ajouter cette jquery :

 $("#ThisLink").addClass("disable_a_href"); 

Bootstrap nous .disabled classe .disabled . Veuillez l’utiliser

Mais la classe .disabled ne fonctionne que lorsque la balise ‘a’ a déjà la classe ‘btn’. Il ne fonctionne sur aucune ancienne balise “a”. La classe ‘btn’ peut ne pas être appropriée dans certains contextes car elle a des connotations de style. Sous les couvertures, la classe .disabled définit le pointeur-événements sur none, vous pouvez donc faire en sorte que css fasse la même chose que Saroj Aryal et Visortinglo. (Merci, Les Nightingill pour ce conseil).

Le meilleur moyen est d’empêcher l’action par défaut. Dans le cas d’une balise d’ancrage, le comportement par défaut est la redirection vers l’adresse spécifiée href .

Donc, javascript suit le mieux dans la situation:

 $('#ThisLink').click(function(e) { e.preventDefault(); }); 

Écrivez ceci une seule ligne de code jQuery

 $('.hyperlink').css('pointer-events','none'); 

si vous voulez écrire dans le fichier css

 .hyperlink{ pointer-events: none; } 

Vous pouvez utiliser l’événement onclick pour désactiver l’action de clic:

 some text 

Ou vous pouvez simplement utiliser autre chose qu’une balise .

Supprimez simplement l’atsortingbut href de la balise d’ancrage.

Créez la classe suivante dans la feuille de style:

  .ThisLink{ pointer-events: none; cursor: default; } 

Ajoutez cette classe à votre lien dynamicment comme suit.

  some text // or using jquery  

Les commentaires de Jason MacDonald ont fonctionné pour moi, testés dans Chrome, Mozila et IE.

Ajout de la couleur grise pour afficher l’effet de désactivation.

 .disable_a_href{ pointer-events: none; **color:#c0c0c0 !important;** } 

Jquery ne sélectionnait que le premier élément de la liste d’ancre, ajoutait le caractère méta (*) pour sélectionner et désactiver tous les éléments avec l’ID #ThisLink .

 $("#ThisLink*").addClass("disable_a_href"); 

Essaye ça:

 $('a').contents().unwrap(); 

Simplement en SASS:

 .some_class{ // styles... &.active { pointer-events:none; } } 

C’est la méthode que j’avais l’habitude de désactiver.

 $("#ThisLink").attr("href","javascript:void(0)"); 
 $('#ThisLink').one('click',function(){ $(this).bind('click',function(){ return false; }); }); 

Ce serait une autre façon de le faire, le gestionnaire avec la valeur return false , qui désactivera le lien, sera ajouté après un clic.

Le plus simple

Dans votre HTML:

 xxxxx 

Dans vos js:

 $('#foo').attr("disabled", false); 

Si vous l’utilisez comme atsortingbut fonctionne parfaitement