Ich habe einen Ankerlink, den ich deaktivieren möchte, sobald der Benutzer darauf klickt. Oder entfernen Sie das Ankertag um den Text, aber behalten Sie den Text auf jeden Fall bei.
<a href='' id='ThisLink'>some text</a>
Ich kann dies einfach mit einer Schaltfläche tun, indem .attr("disabled", "disabled");
ich die deaktivierte Eigenschaft erfolgreich hinzufüge, aber der Link war immer noch anklickbar.
Es ist mir egal, ob der Text unterstrichen ist oder nicht.
Irgendeine Ahnung?
Wenn Sie auf den falschen Musiker klicken, sollte er einfach "Falsch" hinzufügen und dann nicht mehr anklickbar sein.
Wenn Sie auf klicken und korrekt sind, sollte "Awesome" hinzugefügt und dann alle <a>
Tags deaktiviert werden .
Antworten:
Ich habe gerade gemerkt, wonach Sie gefragt haben (ich hoffe). Hier ist eine hässliche Lösung
quelle
Die sauberste Methode wäre, eine Klasse mit Zeigerereignissen hinzuzufügen: keine, wenn Sie einen Klick deaktivieren möchten. Es würde wie ein normales Etikett funktionieren.
quelle
pointer-events:none
wird auchcursor
Titeltext und andere Mouseover-Ereignisse deaktiviert .quelle
javascript: URI
, wertet er den Code in der URI aus und ersetzt dann den Inhalt der Seite durch den zurückgegebenen Wert, sofern der zurückgegebene Wert nicht lautetundefined
. Dervoid
Operator kann zur Rückkehr verwendet werdenundefined
. Beispiel:<a href="javascript:void(0);">
Click here to do nothing
</a>
Beachten Sie jedoch, dass dasjavascript:
Pseudoprotokoll gegenüber anderen Alternativen, wie z. B. unauffälligen Ereignishandlern, nicht empfohlen wird.Verwenden Sie Zeiger-Ereignisse CSS - Stil. (wie Jason MacDonald vorgeschlagen hat)
Siehe MDN https://developer.mozilla.org/en-US/docs/Web/CSS/pointer-events . Es wird in den meisten Browsern unterstützt.
Das einfache Hinzufügen des Attributs "deaktiviert" zum Anker erledigt den Job, wenn Sie eine globale CSS-Regel wie die folgende haben:
quelle
$("#elementid").attr("disabled", "disabled");
. Kann auch hilfreich sein, umcursor: default
in das CSS aufgenommen zu werden (wie von Muhammad Nasir vorgeschlagen).<a />
Elemente kein deaktiviertes Attribut haben - scheint seltsam.oder
Das hängt von der Situation ab
quelle
Bootstrap bietet uns
.disabled
Klasse. Bitte benutzen Sie es.Die
.disabled
Klasse funktioniert jedoch nur, wenn das Tag 'a' bereits die Klasse 'btn' hat. Es funktioniert nicht mit einem alten 'a'-Tag. Diebtn
Klasse ist in einigen Kontexten möglicherweise nicht geeignet, da sie Stilkonnotationen hat. Unter der Decke.disabled
setzt die Klassepointer-events
aufnone
, sodass Sie CSS dazu bringen können, dasselbe zu tun, was Saroj Aryal und Vitrilo vorgeschlagen haben. (Danke, Les Nightingill für diesen Rat).quelle
css
Klasse hinzufügen :Fügen Sie dies hinzu
jquery
:quelle
Entfernen Sie einfach das
href
Attribut aus dem Ankertag.quelle
Der beste Weg ist, die Standardaktion zu verhindern. Im Fall eines Ankertags wird standardmäßig auf umgeleitet
href
angegebene Adresse .Das folgende Javascript funktioniert also am besten in der Situation:
quelle
Mit dem Ereignis onclick können Sie die Klickaktion deaktivieren:
Oder Sie könnten einfach etwas anderes als ein
<a>
Tag verwenden.quelle
text-decoration: none
und kombinieren.disabledLink { color: #000 !important; }
, um es wie normalen Text erscheinen zu lassen.Die Kommentare von Jason MacDonald haben bei mir funktioniert und in Chrome, Mozila und IE getestet.
Graue Farbe hinzugefügt, um den Deaktivierungseffekt anzuzeigen.
Jquery wählte nur das erste Element in der Ankerliste aus und fügte ein Metazeichen (*) hinzu, um alle Elemente mit der ID auszuwählen und zu deaktivieren
#ThisLink
.quelle
Schreiben Sie eine einzelne Zeile jQuery-Code
wenn Sie in CSS-Datei schreiben möchten
quelle
Erstellen Sie folgende Klasse im Stylesheet:
Fügen Sie diese Klasse wie folgt dynamisch zu Ihrem Link hinzu.
quelle
Versuche dies:
quelle
Einfach in SASS:
quelle
Dies ist die Methode, die ich zum Deaktivieren verwendet habe. Ich hoffe, es hilft.
quelle
Dies wäre eine andere Möglichkeit. Der Handler mit
return false
, der den Link deaktiviert, wird nach einem Klick hinzugefügt.quelle
Der einfachste Weg
In Ihrem HTML:
In deinem js:
Wenn Sie es als Attribut verwenden, funktioniert es perfekt
quelle