Wie aktiviert oder deaktiviert man einen Anker mit jQuery?Wie aktiviert oder deaktiviert man einen Anker mit jQuery?
Antwort
Um einen Anker aus nach dem angegebenen href
zu verhindern, würde ich preventDefault()
schlage vor, mit:
// jQuery 1.7+
$(function() {
$('a.something').on("click", function (e) {
e.preventDefault();
});
});
// jQuery < 1.7
$(function() {
$('a.something').click(function (e) {
e.preventDefault();
});
// or
$('a.something').bind("click", function (e) {
e.preventDefault();
});
});
See:
http://docs.jquery.com/Events/jQuery.Event#event.preventDefault.28.29
Siehe auch diese vorherige Frage auf SO:
Ich versuchte mit diesen "attr" es funktioniert nur auf Formularelement nicht auf Anchor-Tag. –
@senthil - preventDefault wird als der 'richtige' Weg betrachtet, dies zu tun, siehe meine Bearbeitung (Link zu einem anderen Q + A) – karim79
Eigentlich ist meine Kodierung in Rails und meine Kodierung ist <% = foo.add_associated_link ('Email hinzufügen', @ project.email.build)%> Wenn ich es in den Browser rendere, kann ich die E-Mail sehen, aber ich kann sie nicht deaktivieren, selbst wenn ich mit e.preventDefault() versucht habe, aber kein Ergebnis –
$("a").click(function(){
alert('disabled');
return false;
});
Wenn Sie versuchen, alle Interaktion mit der Seite zu blockieren könnten Sie am jQuery BlockUI Plugin
Sie gaben nie wirklich sehen wollen, wie Sie sie deaktiviert wollte, oder was würde die Sperrung führen.
Erstens wollen Sie, um herauszufinden, wie der Wert für Behinderte einzustellen, für die Sie JQuery's Attribute Functions verwenden würden, und haben diese Funktion auf einem event, wie ein click oder der loading des Dokuments geschehen.
Die App, an der ich gerade arbeite, macht es mit einem CSS-Stil in Kombination mit Javascript.
a.disabled { color:gray; }
Dann, wenn ich einen Link deaktivieren nenne ich
$('thelink').addClass('disabled');
Dann wird in dem Click-Handler für 'TheLink' ein Tag habe ich immer einen Scheck erste, was laufen
if ($('thelink').hasClass('disabled')) return;
Dies ist definitiv die beste Antwort hier! Gut gemacht. –
Sollte diese letzte Zeile nicht "return false" heißen? – Prestaul
Guter Ruf, Prestaul. Wenn ich an ein -Tag gebunden bin, verwende ich: .. dann: function disableLink (node) {if (dojo.hasClass (node, 'disabled ') return false; dojo.addClass (node,' disabled '); return true;} .. dies erlaubt es, den Link einmal anzuklicken und action (return true) und danach die Aktion nicht zuzulassen (false) – Neek
Es ist so einfach wie falsch zurückgeben;
ex.
jQuery("li a:eq(0)").click(function(){
return false;
})
oder
jQuery("#menu a").click(function(){
return false;
})
fand ich eine Antwort, die Ich mag viel besser here
wie folgt aussieht:
$(document).ready(function(){
$("a").click(function() {
$(this).fadeTo("fast", .5).removeAttr("href");
});
});
Das Attribut href Einstellung aktivieren, beinhalten würde
$(document).ready(function(){
$("a").click(function() {
$(this).fadeIn("fast").attr("href", "http://whatever.com/wherever.html");
});
});
Dies gibt Ihnen das Aussehen, dass das Ankerelement normaler Text wird, und umgekehrt.
$("a").click(function(event) {
event.preventDefault();
});
Wenn diese Methode die Standardaktion des Ereignisses aufgerufen wird, wird nicht ausgelöst.
das ist das gleiche wie die angenommene Antwort –
Ich denke, eine bessere Lösung besteht darin, das deaktivierte Datenattribut einzuschalten und es beim Anklicken zu verankern. Auf diese Weise können wir vorübergehend einen Anker deaktivieren, bis z.B.Das Javascript ist mit einem Ajax-Aufruf oder einigen Berechnungen abgeschlossen. Wenn wir es nicht deaktivieren, dann können wir es schnell ein paar Mal auf, was unerwünscht ist ...
$('a').live('click', function() {
var anchor = $(this);
if (anchor.data("disabled")) {
return false;
}
anchor.data("disabled", "disabled");
$.ajax({
url: url,
data: data,
cache: false,
success: function (json) {
// when it's done, we enable the anchor again
anchor.removeData("disabled");
},
error: function() {
// there was an error, enable the anchor
anchor.removeData("disabled");
}
});
return false;
});
Ich habe ein jsfiddle Beispiel: http://jsfiddle.net/wgZ59/76/
Für Situationen, in denen Sie Text setzen müssen oder html Inhalt innerhalb eines Anchor-Tags, aber Sie möchten einfach keine Aktion ausführen, wenn auf dieses Element geklickt wird (z. B. wenn Sie möchten, dass eine Paginator-Verknüpfung deaktiviert ist, weil es die aktuelle Seite ist) href. ;)
<a>3 (current page, I'm totally disabled!)</a>
Die Antwort von @ michael-Wiesen kippte mir dies ab, aber seine war noch Szenarien Adressierung, wo man noch mit jQuery/JS müssen/arbeiten. In diesem Fall wenn Sie die Kontrolle über das Schreiben der HTML selbst haben, einfach x-ing der href-Tag ist alles was Sie tun müssen, so ist die Lösung eine reine HTML-Lösung!
Andere Lösungen ohne jQuery Finagling, die die href beibehalten müssen Sie ein # in die href setzen, aber das führt dazu, dass die Seite nach oben springt, und Sie wollen nur, dass es einfach alt deaktiviert ist. Oder lassen Sie es leer, aber je nach Browser, das macht immer noch Dinge wie zum Anfang, und es ist ungültig HTML nach den IDEs. Aber anscheinend ist ein a
Tag vollständig gültiges HTML ohne ein HREF.
Schließlich könnten Sie sagen: Okay, warum nicht einfach das a-Tag als Ganzes dump? Denn oft können Sie nicht, wird das a
Tag für Styling Zwecke in der CSS-Framework verwendet, oder steuern Sie verwenden, wie Bootstrap des paginator:
http://twitter.github.io/bootstrap/components.html#pagination
Versuchen Sie, die folgenden Zeilen
$("#yourbuttonid").attr("disabled", "disabled");
$("#yourbuttonid").removeAttr("href");
Coz, auch wenn Sie <a>
deaktivieren Tag href
funktioniert so müssen Sie auch href
entfernen.
Wenn Sie aktivieren möchten versuchen unten Linien
$("#yourbuttonid").removeAttr("disabled");
$("#yourbuttonid").attr("href", "#nav-panel");
Dies ist genau das, was ich bei der Verwendung von JQuery mit ASP.net MVC ActionLink benötigte. Vielen Dank! – eaglei22
Wenn Sie es nicht als ein Anker-Tag verhalten, dann würde ich es vorziehen, es überhaupt zu ersetzen. Zum Beispiel wenn Ihr Anker-Tag ist wie
<a class="MyLink" href="http://www.google.com"><span>My</span> <strong>Link</strong></a>
dann jquery verwenden Sie dies tun können, wenn Sie Text anstelle eines Links angezeigt werden müssen.
var content = $(".MyLink").text(); // or .html()
$(".MyLink").replaceWith("<div>" + content + "</div>")
So können wir einfach Anker-Tag mit einem Div-Tag ersetzen. Das ist viel einfacher (nur 2 Linien) und semantisch korrekte und
$('#divID').addClass('disabledAnchor');
In CSS-Datei So
.disabledAnchor a{
pointer-events: none !important;
cursor: default;
color:white;
}
Beste Lösung Tq –
(weil wir daher eine Verbindung haben, sollten nicht jetzt nicht einen Link benötigen) mit eine Kombination der obigen Antworten, kam ich auf diese.
a.disabled { color: #555555; cursor: default; text-decoration: none; }
$(".yourClass").addClass("disabled").click(function(e){ e.preventDefault();
Deaktivieren oder aktivieren Sie ein beliebiges Element mit der deaktivierten Eigenschaft.
// Disable
$("#myAnchor").prop("disabled", true);
// Enable
$("#myAnchor").prop("disabled", false);
Warum wird diese Antwort abgelehnt? Es beantwortet die Frage "Wie kann ich einen Anker mithilfe von jQuery aktivieren oder deaktivieren?" – RitchieD
Ausgewählte Antwort ist nicht gut.
Verwenden Sie Zeiger-Ereignisse CSS-Stil. (Wie Rashad Annara vorgeschlagen hat)
Siehe MDN https://developer.mozilla.org/en-US/docs/Web/CSS/pointer-events. Es wird in den meisten Browsern unterstützt.
Simple „deaktiviert“ Attribut Hinzufügen um den Job zu verankern tun, wenn Sie wie folgende globale CSS-Regel haben:
a[disabled], a[disabled]:hover {
pointer-events: none;
color: #e1e1e1;
}
Auch mit Zeiger-Ereignissen müssen Sie nicht den: Hover-Status als ein Zeiger-Ereignis enthalten. Sie müssen nur den Auswahlschalter a [deaktiviert] einschließen. – TwistedStem
- 1. CustomException aktiviert oder deaktiviert
- 2. aktiviert oder deaktiviert Ausnahme
- 3. Wie aktiviert/deaktiviert man einen virtualenv aus Python-Code?
- 4. jQuery .prop ("deaktiviert", false) aktiviert keinen Eingang
- 5. Standard-Checkbox-Status: aktiviert oder deaktiviert?
- 6. JQuery - Wie man ein Formular sendet und einen Anker ruft?
- 7. Javascript aktiviert oder deaktiviert ein Kontrollkästchen?
- 8. Warum aktiviert/deaktiviert jQuery das Kontrollkästchen
- 9. wie man mehrere Checkboxen innerhalb einer Radcombobox mit jquery deaktiviert/aktiviert?
- 10. JCheckBox aktiviert/deaktiviert JRadioButton
- 11. Wie man einen Nachrichten-Listener vorübergehend deaktiviert
- 12. yii2: wie wenn für aktiviert oder deaktiviert Checkbox in _form.php
- 13. semantic ui wie man ein Dropdown mit Javascript aktiviert oder deaktiviert
- 14. Behalten deaktiviert Eingabefeld deaktiviert, wenn aktiviert
- 15. LabVIEW deaktiviert Slider ist aktiviert
- 16. Schreibgeschützt oder deaktiviert die Jquery-Tags
- 17. toggleClass aktiviert, aber nicht deaktiviert
- 18. Wie aktiviert/deaktiviert Eingabefeld basierend auf Optionsfeld
- 19. deaktiviert aktiviert Taste mit Lotus Formel
- 20. Wie kann man das andere Kontrollkästchen deaktivieren oder deaktivieren, wenn man mit jquery überprüft?
- 21. So ermitteln Sie, ob das Benutzerkonto aktiviert oder deaktiviert ist
- 22. wie jquery Anker href Wert
- 23. Robolectric - Wie deaktiviert man einen Komponententest?
- 24. Eindeutige Anker-Links mit jQuery
- 25. auf <span> Klick ändert Radio aktiviert oder deaktiviert
- 26. Checkbox aktiviert/deaktiviert das Senden funktioniert nur einmal, jquery
- 27. Wie kann der Browser am besten auf einen Link zurückgreifen, wenn JavaScript deaktiviert oder deaktiviert ist?
- 28. Verhindern mehrere Klicks auf einen Link mit JS oder jquery
- 29. Wie deaktiviert man einen Android-Dienst mit ifttt?
- 30. SWT CheckBox Button wird aktiviert/deaktiviert Status
Vielen Dank für Ihre Antwort, noch ist es nicht so arbeiten, können Sie bitte es funktioniert mit document.ready function –
Es kann hilfreich sein, wenn Sie das Code-Snippet veröffentlichen, das nicht funktioniert. –
Eigentlich ist meine Codierung in Rails und meine Codierung ist <% = foo.add_associated_link ('E-Mail-Adresse', @ project.email.build)%> wenn ich es in Browser rendern kann ich die E-Mail aber ich kann es nicht sogar ich versuchte mit Codierung wie e.preventDefault(), aber ohne Ergebnis –