Weiß jemand, wie man einen Link in jquery OHNE Verwendung deaktiviert return false;
?
Insbesondere versuche ich, den Link eines Elements zu deaktivieren, einen Klick mit jquery darauf auszuführen, der einige Dinge auslöst, und diesen Link dann wieder zu aktivieren, damit er standardmäßig funktioniert, wenn er erneut angeklickt wird.
Vielen Dank. Dave
UPDATE
Hier ist der Code. Nachdem die .expanded
Klasse angewendet wurde, muss der deaktivierte Link wieder aktiviert werden.
$('ul li').click(function(e) {
e.preventDefault();
$('ul').addClass('expanded');
$('ul.expanded').fadeIn(300);
//return false;
});
Antworten:
Dadurch wird das Standardverhalten eines Hyperlinks verhindert, der darin besteht, die angegebene href zu besuchen.
Aus dem jQuery- Tutorial :
Wenn Sie nur möchten,
preventDefault()
wenn eine bestimmte Bedingung erfüllt ist (z. B. etwas ist verborgen), können Sie die Sichtbarkeit Ihrer Ul mit der erweiterten Klasse testen . Wenn es sichtbar (dh nicht ausgeblendet) ist, sollte der Link wie gewohnt ausgelöst werden, da die if-Anweisung nicht eingegeben wird und somit das Standardverhalten nicht verhindert wird:quelle
Versuche dies:
BEARBEITEN-
Aus Ihrem aktualisierten Code:
quelle
href="#"
Für andere, die wie ich über Google hierher gekommen sind - hier ist ein anderer Ansatz:
Denken Sie daran: Nicht nur dies ist eine CSS-Klasse
aber auch diese beiden
So können Sie mit jQuery problemlos weitere Klassen hinzufügen und entfernen. Keine Notwendigkeit, href zu berühren ...
Ich liebe jQuery! ;-);
quelle
on()
allea.disabled
Links filtern und Standardwerte verhindern. Dann müssen Sie nur noch die deaktivierte Klasse ein- und ausschalten, und der Link wird sich selbst behandeln, wenn er aktiviert ist.if(disabledCondition)
== true
. :)if ($(this).hasClass('disabled')) { e.preventDefault(); }
?Hier ist eine alternative CSS / JQuery-Lösung, die ich wegen ihrer Knappheit und minimierten Skripterstellung bevorzuge:
CSS:
jQuery:
quelle
.prop("tabindex", "-1");
nach demaddClass
Sie können den Klick für den Link entfernen, indem Sie folgendermaßen vorgehen:
Sie können den Link wie folgt wieder aktivieren:
Sie können die Eigenschaft 'disabled' nicht für Links verwenden.
quelle
Wenn Sie die href-Route wählen, können Sie sie speichern
Etwas deaktivieren:
Aktivieren Sie dann erneut mit:
In einem Fall musste ich es so machen, weil die Klickereignisse bereits woanders gebunden waren und ich keine Kontrolle darüber hatte.
quelle
Ich benutze dies immer in jQuery, um Links zu deaktivieren
quelle
$("form a").attr("disabled", false);
, um es wieder zu aktivierenBeispiel für einen HTML-Link:
Verwenden Sie dies in jQuery
füge dies zu css hinzu:
quelle
pointer-events: none
Eigenschaft enthält, aus den Ankerelementen wieder das getan wird, was sie zuvor beim Klicken getan haben. Wenn es sich also um einfache Hyperlinks handelt, navigieren sie wieder zur URL in ihremhref
Attribut. Wenn ein Klickereignishandler festgelegt ist, wird dieser wieder aktiv. Viel einfacher als das Speichern vonhref
Werten und Klick-Handlern.Mein Favorit in "Zur Kasse gehen, um ein Element zu bearbeiten und zu verhindern, dass - wilde Wilde West-Klicks irgendwo hin - während einer Kasse" funktioniert
Wenn ich also möchte, dass alle externen Links in einer zweiten Aktionssymbolleiste im oben beschriebenen "Bearbeitungsmodus" deaktiviert werden, füge ich die Bearbeitungsfunktion hinzu
Linkbeispiel nach einem Brand:
Und jetzt können Sie deaktivierte Eigenschaften für Links verwenden
Prost!
quelle
Sie sollten Sie antworten finden hier .
Vielen Dank an @Will und @Matt für diese elegante Lösung.
quelle
Sie können den Link einfach ausblenden und anzeigen, wie Sie möchten
quelle
Einfach Sachen auslösen, ein Flag setzen, false zurückgeben. Wenn das Flag gesetzt ist, nichts tun.
quelle
unbind()
wurde in veraltetjQuery 3
, verwenden Sieoff()
stattdessen die Methode:quelle
Ich weiß, dass dies nicht mit jQuery ist, aber Sie können einen Link mit einem einfachen CSS deaktivieren:
Das HTML würde so aussehen
quelle
Dies funktioniert für Links, für die das Attribut onclick inline festgelegt ist. Auf diese Weise können Sie auch später "return false" entfernen, um es zu aktivieren.
quelle
Einfach benutzen
$("a").prop("disabled", true);
. Dadurch wird das Linkelement wirklich deaktiviert. Muss seinprop("disabled", true)
. Nicht benutzenattr("disabled", true)
quelle