Ich nehme eine Schätzung und sage vielleicht, weil Sie ein a
Tag verwenden und die Seite wird aktualisiert, bevor das Skript es tun kann.
Die Lösung für das wäre event.preventDefault
wie so in Ihrer Funktion zu verwenden:
$('.buy').click(function(event) {
event.preventDefault();
//the rest of your code
});
standardmäßig ein a
Tag wird in der Regel zu einer neuen Seite navigieren (basierend auf das href
Attribute). Wenn kein href
festgelegt ist, wird normalerweise die aktuelle Seite neu geladen. Dies ist eine häufige Überlegung von den meisten Menschen, die die preventDefault
Funktion nicht kennen. Durch das Hinzufügen dieser Zeile wird jedoch verhindert, dass die Verknüpfung irgendwo navigiert.
Wie @Esailija gesagt hat, wenn der gesamte Code innerhalb Ihrer Klick-Funktion synchron läuft, würde er vor der Seitennavigation vollständig sein, was darauf hindeutet, dass ein Teil davon (am ähnlichsten wie der .track
Aufruf) asynchron läuft - vielleicht mit B. ein Timer oder über einen Ajax-Ruf.
Im Allgemeinen, wenn Sie feststellen, dass eine Warnung Code beheben wird, ist es wahrscheinlich, weil etwas nicht genügend Zeit für die Fertigstellung bekommt. Suchen Sie also immer nach etwas, das das Skript beenden würde, dies ist höchstwahrscheinlich (und in diesem Fall) eine Seite neu laden/aktualisieren.
Wenn dies nicht das Problem ist, dann müssen wir vielleicht etwas von Ihrem HTML sehen, um weiter zu helfen.
Durch Ihre Kommentare, dass Sie noch navigieren möchten, habe ich eine sehr schnelle Google-Suche und die Dokumentation erfahren Sie, wie Links zu handhaben. Look at this page und scrollen Sie nach unten zur Funktion mixpanel.track_links
.
Wo haben Sie die Warnung hinzugefügt? –
vielleicht, weil Sie ein 'a' Tag verwenden und die Seite wird aktualisiert, bevor das Skript es tun kann – musefan
@musefan Oh, das ist ein guter. Hab nicht mal daran gedacht. –