jQuery deaktivieren einen Link
Weiß jemand, wie man einen Link in Jquery deaktivieren kann, OHNE return false;
zu verwenden?
Insbesondere, was ich versuche zu tun ist, deaktivieren Sie den Link eines Elements, Durchführung eines Klicks auf es mit Jquery, die einige Dinge auslöst, dann wieder aktivieren, dass Link, so dass, wenn es wieder angeklickt wird es funktioniert als Standard.
Vielen Dank! Dave
UPDATE
Hier's der Code. Was es tun muss, nachdem die Klasse .expanded
angewendet wurde, ist, den deaktivierten Link wieder zu aktivieren.
$('ul li').click(function(e) {
e.preventDefault();
$('ul').addClass('expanded');
$('ul.expanded').fadeIn(300);
//return false;
});
276
16
Das verhindert das Standardverhalten eines Hyperlinks, das darin besteht, die angegebene href zu besuchen.
Aus dem jQuery tutorial:
Wenn Sie
preventDefault()
nur dann einsetzen wollen, wenn eine bestimmte Bedingung erfüllt ist (z.B. wenn etwas versteckt ist), können Sie die Sichtbarkeit Ihrer ul mit der Klasse expanded testen. Wenn es sichtbar ist (d.h. nicht versteckt), sollte der Link ganz normal ausgelöst werden, da die if-Anweisung nicht eingegeben wird, und somit das Standardverhalten nicht verhindert wird:Versuchen Sie dies:
EDIT-
Von Ihrem aktualisierten Code:
Für andere, die wie ich über Google hierher gekommen sind - hier's ein anderer Ansatz:
Denken Sie daran: nicht nur dies ist eine css-Klasse
aber auch diese beiden
so dass Sie mit jQuery leicht weitere Klassen hinzufügen und entfernen können. Sie brauchen href nicht zu berühren...
Ich liebe jQuery! ;-)
Hier ist eine alternative css/jQuery-Lösung, die ich wegen ihrer Kürze und des minimierten Skriptings bevorzuge:
css:
jQuery:
Sie können Klick für Link entfernen, indem Sie folgen;
Sie können den Link durch Folgen wieder aktivieren,
Sie können nicht 'disabled' verwenden; Eigenschaft für Links.
Wenn Sie die href-Route gehen, können Sie sie speichern
Zu deaktivieren:
Aktivieren Sie dann die Verwendung wieder:
In einem Fall musste ich es so machen, weil die Klickereignisse bereits woanders gebunden waren und ich keine Kontrolle darüber hatte.
Ich verwende dies immer in jQuery zum Deaktivieren von Links
html-Link-Beispiel:
dies in jQuery verwenden
Dies zu css hinzufügen:
Mein Favorit in "Kasse, um einen Artikel zu bearbeiten und zu verhindern, dass -wilder wilder Westen überall hinklickt, während man sich in einer Kasse befindet" Funktionen
Wenn ich also möchte, dass alle externen Links in einer zweiten Aktionssymbolleiste deaktiviert werden, während ich mich im "Bearbeitungsmodus" befinde; wie oben beschrieben, fügt i'll in der Editierfunktion
Linkbeispiel nach einem Brand:
Und jetzt können Sie die Eigenschaft disabled für Links verwenden
Prost!
Sie sollten Ihre Antwort [hier][1] finden.
Danke @Will und @Matt für diese elegante Lösung.
[1]: https://stackoverflow.com/questions/586024/disabling-links-with-jquery
Sie können den Link nach Belieben ein- und ausblenden
Einfach etwas auslösen, ein Flag setzen, false zurückgeben. Wenn das Flag gesetzt ist - nichts tun.
unbind()
wurde injQuery 3
veraltet, verwenden Sie stattdessen dieoff()
Methode:Dies funktioniert für Links, bei denen das onclick-Attribut inline gesetzt ist. Auf diese Weise können Sie später auch das "return false" entfernen; zurückzugeben, um es zu aktivieren.
Ich weiß, dies ist't mit jQuery, aber Sie können einen Link mit einigen einfachen css deaktivieren:
würde das HTML wie folgt aussehen
Verwenden Sie einfach
$("a").prop("disabled", true);
. Dies wird das de Link-Element wirklich deaktivieren. Mussprop("disabled", true);
sein. Don't useattr("disabled", true)
.