jQuery $ .cookie ist keine Funktion
Ich versuche, ein cookie zu setzen mit jQuery:
$.cookie("testCookie", "hello");
alert($.cookie("testCookie"));
Aber wenn ich es lade meine Seite, erhalte ich die Fehlermeldung "$.cookie ist keine Funktion". Hier ist was ich weiß:
- Heruntergeladen habe ich das jQuery cookie plugin hier.
- Ich bin Verlinkung zur jQuery und DANN die cookie-plugin.
- Sowohl jQuery und jQuery.Cookies sind korrekt geladen wird mit 200 OKs.
Ich sah mehrere andere Antworten (hier und hier u.a.), zu denen die meisten Menschen vorgeschlagen, die Umbenennung der cookie.js Datei. Ich habe umbenannt, meine cookie-Datei "jquery.cookeee.js" aber die Ergebnisse sind die gleichen.
Irgendwelche Ideen auf, was ist hier Los?
Falls es hilft, ich bin erstellen einer web-Applikation in MVC 4.
Kommentar zu dem Problem
Alle Ausnahmen, die Sie in Ihrem browser für die Konsole? Vielleicht ist Ihre version von jQuery ist nicht das richtige für Ihre version von jQuery cookie plugin
Sind Sie wie jQuery zweimal? (wahrscheinlich ja). Andernfalls bist du entweder mit $.noConflict(), oder Sie auch anderen .js-Datei, überschreibt $.
Was bedeutet $.fn.jquery-geben Sie sofort nach, einschließlich jquery.js und in deinem code wo der Fehler Auftritt.
@ElliotSchmelliot ja, wie der zweite wird komplett überschreiben Sie die erste, inklusive aller plugins.
Wenn Sie bereits die Antwort gefunden, Sie konnte es selbst beantwortet. Dies verhindert, dass andere auf eine Antwort oder gar die Frage offen.
InformationsquelleAutor der Frage ElliotSchmelliot | 2013-08-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn jemand stolpert auf die
$.cookie is not a function
problem, hier sind alle mögliche Probleme/Lösungen, die ich über gekommen sind:$.cookie
ist nicht ein standard-jQuery-Funktion und das plugin heruntergeladen werden muss hier. Stellen Sie sicher, dass die entsprechenden<script>
tag, wo nötig (siehe weiter).d.h. Ihren Kopf enthalten kann:
DANN
Für jemand mit ASP.Net MVC-Projekte, seien Sie vorsichtig mit den Standard-javascript-bundle Einschlüsse; Sie kann schwer zu finden manchmal. Meine zweite Aufnahme von jQuery wurde in einer meiner globalen layout-Seiten unter der Linie
@Scripts.Render("~/bundles/jquery")
. Ich persönlich bevorzuge nicht-rendering-bundles und nur die Verknüpfung zum javascript wie nötig.Cheers und besonderen Dank an Kevin B für die Hilfe dabei.
InformationsquelleAutor der Antwort ElliotSchmelliot
Den alte version von jQuery Cookie verworfen wurde, so dass, wenn Sie immer die Fehler:
sollten Sie ein upgrade auf die neue version.
Die API für die neue version ist auch anders - anstatt
sollten Sie verwenden
InformationsquelleAutor der Antwort YPCrumble
fügen Sie diese cookie-plugin für jquery.
InformationsquelleAutor der Antwort cabs
Überprüfen Sie, dass Sie das script in den header und nicht in der Fußzeile der Seite. Vor allem in WordPress-das eine hat nicht funktioniert:
Der Letzte parameter gibt an, einschließlich das Skript im footer und notwendig, um geändert werden zu "false" (Standardeinstellung). Die Art und Weise es funktionierte:
InformationsquelleAutor der Antwort Tatyana
Sollten Sie zuerst
jquery.cookie.js
fügen Sie dann Ihre js oder jQuery, wo Sie mit dieser Funktion.Wann der browser lädt die Webseite zuerst lädt diese
jquery.cookie.js
und nachdem du dann js oder jQuery und nun, die Funktion ist verfügbar für die VerwendungInformationsquelleAutor der Antwort Sanjeev Mishra
Hatte ich dieses problem auch. Ich fand heraus, dass mit einem $(document).ready-Funktion, die ein $.cookie in ein script-tag innerhalb des Körpers, während mit cookie js laden im head UNTER die jquery-wie vorgesehen führte zu $(document).bereit beeing verarbeitet werden, bevor das cookie-plugin konnte geladen.
Zog ich die cookie-plugin load script in den Körper, bevor Sie $(document).bereit Skript und die Fehlermeldung ist verschwunden 😀
InformationsquelleAutor der Antwort Kostas Tsakalidis