J'ai un lien d'ancrage que je souhaite désactiver une fois que l'utilisateur clique dessus. Ou supprimez la balise d'ancrage autour du texte, mais conservez définitivement le texte.
<a href='' id='ThisLink'>some text</a>
Je peux le faire facilement avec un bouton en ajoutant que .attr("disabled", "disabled");
j'ai ajouté avec succès la propriété désactivée, mais le lien était toujours cliquable.
Je me fiche de savoir si le texte est souligné ou non.
Un indice?
Lorsque vous cliquez sur le mauvais musicien, il devrait simplement ajouter "Wrong" et ensuite devenir non cliquable.
Lorsque vous cliquez et que vous avez raison, il faut ajouter "Génial" puis désactiver toutes les <a>
balises.
Réponses:
Je viens de réaliser ce que vous demandiez (j'espère). Voici une solution moche
la source
La méthode la plus propre serait d'ajouter une classe avec des événements de pointeur: aucun lorsque vous souhaitez désactiver un clic. Cela fonctionnerait comme une étiquette normale.
la source
pointer-events:none
désactivera également lecursor
texte du titre et d'autres événements de survol de la souris.la source
javascript: URI
, il évalue le code dans l'URI, puis remplace le contenu de la page par la valeur renvoyée, sauf si la valeur renvoyée estundefined
. L'void
opérateur peut être utilisé pour revenirundefined
. Par exemple:<a href="javascript:void(0);">
Click here to do nothing
</a>
notez cependant que lejavascript:
pseudo protocole est déconseillé par rapport à d'autres alternatives, telles que les gestionnaires d'événements discrets.Utilisez le style CSS pointeur-événements . (comme l'a suggéré Jason MacDonald)
Voir MDN https://developer.mozilla.org/en-US/docs/Web/CSS/pointer-events . Il est pris en charge dans la plupart des navigateurs.
L'ajout simple d'un attribut "désactivé" à l'ancrage fera l'affaire si vous avez une règle CSS globale comme suit:
la source
$("#elementid").attr("disabled", "disabled");
. Peut également être utile à inclurecursor: default
dans le CSS (comme suggéré par Muhammad Nasir).<a />
éléments n'ont pas d'attribut désactivé - cela semble étrange.ou
Cela dépend de la situation
la source
Bootstrap nous fournit la
.disabled
classe. Veuillez l'utiliser.Mais la
.disabled
classe ne fonctionne que lorsque la balise «a» a déjà la classe «btn». Cela ne fonctionne pas sur les anciennes balises «a». Labtn
classe peut ne pas être appropriée dans certains contextes car elle a des connotations de style. Sous les couvertures, la.disabled
classe est définiepointer-events
surnone
, vous pouvez donc faire en sorte que CSS fasse la même chose que Saroj Aryal et Vitrilo l'ont suggéré. (Merci, Les Nightingill pour ce conseil).la source
Ajouter une
css
classe:Ajoutez ceci
jquery
:la source
Supprimez simplement l'
href
attribut de la balise d'ancrage.la source
Le meilleur moyen est d'empêcher l'action par défaut. Dans le cas de la balise d'ancrage, le comportement par défaut est la redirection vers l'
href
adresse spécifiée.Donc, le javascript suivant fonctionne mieux dans la situation:
la source
Vous pouvez utiliser l'événement onclick pour désactiver l'action de clic:
Ou vous pouvez simplement utiliser autre chose qu'une
<a>
balise.la source
text-decoration: none
et.disabledLink { color: #000 !important; }
pour le faire apparaître comme du texte normal.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.
Jquery sélectionnait uniquement le premier élément de la liste d'ancrage, a ajouté un méta-caractère (*) pour sélectionner et désactiver tous les éléments avec un identifiant
#ThisLink
.la source
Écrivez ceci une seule ligne de code jQuery
si vous voulez écrire dans un fichier css
la source
Créez la classe suivante dans la feuille de style:
Ajoutez cette classe à votre lien dynamiquement comme suit.
la source
Essaye ça:
la source
Simplement dans SASS:
la source
C'est la méthode que j'ai utilisée pour désactiver. J'espère que cela aide.
la source
Ce serait une autre façon de faire cela, le gestionnaire avec
return false
, qui désactivera le lien, sera ajouté après un clic.la source
Le moyen le plus simple
Dans votre html:
Dans votre js:
Si vous l'utilisez comme attribut fonctionne parfaitement
la source