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