Ich kann kein Beispiel dafür finden, was ich hier versuche, aber ich bin mir sicher, dass es möglich ist.
Betrachten Sie Folgendes:
%Vor% Wie kann ich eine Funktion ausführen, wenn auf ein link
in #main_nav
geklickt wird und dann auf das link
?
Das Folgende funktioniert nicht, da die Verknüpfung befolgt wird, bevor die Funktion ausgeführt wird.
%Vor%BEARBEITEN
Ich versuche tatsächlich, einen Cookie mit dem JQuery-Cookie-Plugin zu löschen, wenn auf die Links geklickt wird. Ich bin mir nicht sicher, ob dies relevant ist oder nicht.
Der Cookie-Code löschen lautet:
%Vor%TMMenu ist der korrekte Name und das Plugin ist geladen.
BEARBEITEN
Tut mir allen leid. Das Problem lag tatsächlich in der JQuery Cookie-Plugin-Dokumentation .
%Vor%wie in der Readme beschrieben scheint nicht zu funktionieren. Das tut:
%Vor%Aktualisieren : Für die Bearbeitung: Ich sehe keinen anderen Grund als # 1.
Ich kann mir zwei Antworten auf diese Frage vorstellen:
Sie führen Ihren jQuery-Code aus, bevor das Element #main_nav a
existiert und kein Ereignishandler angeschlossen ist. Platzieren Sie Ihr Skript am Ende der HTML-Datei, unmittelbar vor dem schließenden </body>
-Tag, oder verwenden Sie den ready
-Rückruf .
Sie tun etwas Asynchrones in Ihrem Handler und sehen es nicht. Sobald die Ereignisbehandlungsroutine zurückkehrt, wird die Verknüpfung befolgt, selbst wenn Ihr Handler eine asynchrone Aktion initiiert.
Hier erfahren Sie, wie Sie das zweite Problem beheben können (beides, wenn Sie dies am Ende oder in einem ready
-Handler ablegen):
( Live-Kopie | Quelle )
So machen Sie das. Wenn Sie in Ihrem Click-Handler-Callback event.preventDefault
aufrufen, wird die Standardaktion verhindert. Dann folgen Sie dem Link via Javascript einfach mit window.open(url)
oder window.location = url
.
W3Schools hat mehr Informationen über den Unterschied zwischen window.open
und window.location
.
Tags und Links javascript jquery hyperlink