Ich habe einen Anker mit beiden HREF
und ONCLICK
Attributen gesetzt. Wenn geklickt und Javascript aktiviert ist, soll es nur ausgeführt ONCLICK
und ignoriert werden HREF
. Wenn Javascript deaktiviert oder nicht unterstützt wird, möchte ich, dass es der HREF
URL folgt und ignoriert ONCLICK
. Unten ist ein Beispiel dafür, was ich tue, das JS ausführen und gleichzeitig dem Link folgen würde (normalerweise wird das JS ausgeführt und dann ändert sich die Seite):
<A HREF="http://example.com/no-js-login" ONCLICK="yes_js_login()">Log in</A>
Was ist der beste Weg, dies zu tun?
Ich hoffe auf eine Javascript-Antwort, aber ich akzeptiere jede Methode, solange sie funktioniert, insbesondere wenn dies mit PHP möglich ist. Ich habe bereits gelesen, dass ein href-Link die Seite ausführt und umleitet, bevor die JavaScript-Onclick-Funktion beendet werden kann , aber sie verzögert sich nur HREF
, deaktiviert sie jedoch nicht vollständig. Ich suche auch etwas viel Einfacheres.
Antworten:
Sie können die erste nicht bearbeitete Lösung verwenden, wenn Sie im
onclick
Attribut return an die erste Stelle setzen :Beispiel: https://jsfiddle.net/FXkgV/289/
quelle
Wenn Sie false zurückgeben, sollte dies die Standardaktion verhindern (zur href gehen).
Bearbeiten: Entschuldigung, das scheint nicht zu funktionieren, Sie können stattdessen Folgendes tun:
quelle
onclick="return yes_js_login();"
mityes_js_login
Rückgabe verwendenfalse
event.stopImmediatePropagation()
Deaktivieren Sie einfach das Standardverhalten des Browsers, indem Sie
preventDefault
dasevent
in Ihrem HTML- Code verwenden und übergeben .<a href=/foo onclick= yes_js_login(event)>Lorem ipsum</a>
quelle
mit jQuery:
mit JavaScript
Sie weisen
.ignore-click
so vielen Elementen eine Klasse zu, wie Sie möchten, und Klicks auf diese Elemente werden ignoriertquelle
.btn-loading
zum angeklickten Link hinzugefügt wird. Wenn dies erfolgreich ist, ersetzt ein Häkchen (bei Fehler ein X) die Ladeanimation. Ich möchte nicht, dass die Schaltfläche in einigen Fällen erneut angeklickt werden kann (sowohl für Erfolg als auch für Fehler). Auf diese Weise kann ich einfach$(elemnent).addClass('disabled')
und einfach die Funktionalität erreichen, die ich auf elegante Weise gesucht habe!Sie können diesen einfachen Code verwenden:
quelle
Es ist einfacher, wenn Sie einen Ereignisparameter wie folgt übergeben:
quelle
Dies könnte helfen. Keine JQuery erforderlich
Dieser Code bewirkt Folgendes: Übergeben Sie den entsprechenden Link an Google Text & Tabellen-Viewer
this.href
In Ihrem Fall könnte dies also funktionieren:
quelle
Ich habe eine Situation gelöst, in der ich eine Vorlage für das Element benötigte, die alternativ eine reguläre URL oder einen Javascript-Aufruf verarbeiten würde, wobei die js-Funktion einen Verweis auf das aufrufende Element benötigt. In Javascript funktioniert "dies" als Selbstreferenz nur im Kontext eines Formularelements, z. B. einer Schaltfläche. Ich wollte keinen Button, nur das Erscheinen eines regulären Links.
Beispiele:
Die href- und onClick-Attribute haben dieselben Werte, außer dass ich bei onClick "return false" anhänge, wenn es sich um einen Javascript-Aufruf handelt. "Return false" in der aufgerufenen Funktion hat nicht funktioniert.
quelle
HREF
?Das hat bei mir funktioniert:
quelle
In meinem Fall hatte ich eine Bedingung, als der Benutzer auf das "a" -Element klickte. Die Bedingung war:
Wenn ein anderer Abschnitt mehr als zehn Elemente enthält, sollte der Benutzer nicht auf eine andere Seite umgeleitet werden.
Wenn in einem anderen Abschnitt weniger als zehn Elemente vorhanden waren, sollte der Benutzer auf eine andere Seite umgeleitet werden.
Die Funktionalität der "a" -Elemente hängt von der anderen Komponente ab. Der Code innerhalb des Klickereignisses lautet wie folgt:
quelle