J'essaie de définir un cookie à l'aide de jQuery:
$.cookie("testCookie", "hello");
alert($.cookie("testCookie"));
Mais lorsque je charge ma page, je reçois l’erreur "$ .cookie n’est pas une fonction". Voici ce que je sais:
J'ai examiné plusieurs autres réponses ( ici et ici entre autres), auxquelles la plupart des gens ont suggéré de renommer le fichier cookie.js. J'ai renommé mon fichier de cookies "jquery.cookeee.js" mais les résultats sont les mêmes.
Des idées sur ce qui se passe ici?
Si cela peut aider, je crée une application Web dans MVC 4.
Si quelqu'un d'autre tombe sur le problème $.cookie is not a function
, voici tous les problèmes/solutions possibles que j'ai rencontrés:
$.cookie
n'est pas une fonction jQuery standard et le plugin doit être téléchargé ici . Assurez-vous d'inclure la balise <script>
appropriée si nécessaire (voir ci-après).c'est-à-dire que votre tête peut contenir:
<script src="~/Scripts/jquery-2.0.3.js" type="text/javascript"></script>
et alors
<script src="~/Scripts/jquery_cookie.js" type="text/javascript"></script>
Pour toute personne utilisant des projets ASP.Net MVC, soyez prudent avec les inclusions par défaut de l'ensemble javascript; ils peuvent être difficiles à trouver parfois. Ma deuxième inclusion de jQuery se trouvait dans l'une de mes pages de mise en page globale sous la ligne @Scripts.Render("~/bundles/jquery")
. Personnellement, je préfère ne pas rendre les bundles et simplement créer des liens vers javascript, au besoin.
Salutations et un merci spécial à Kevin B pour l'aide sur celui-ci.
La ancienne version de jQuery Cookie est obsolète. Si vous obtenez l'erreur:
$.cookie is not a function
vous devriez passer à la nouvelle version .
L’API de la nouvelle version est également différent - plutôt que d’utiliser
$.cookie("yourCookieName");
tu devrais utiliser
Cookies.get("yourCookieName");
ajouter ce plugin cookie pour jQuery.
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>
Vérifiez que vous avez inclus le script dans l'en-tête et non dans le pied de page. En particulier dans WordPress, celui-ci n'a pas fonctionné:
wp_register_script('cookie', get_template_directory_uri() . '/js/jquery.cookie.js', array(), false, true);
Le dernier paramètre indique l'inclusion du script dans le pied de page et doit être remplacé par false (valeur par défaut). La façon dont cela a fonctionné:
wp_register_script('cookie', get_template_directory_uri() . '/js/jquery.cookie.js');
Vous devriez d'abord ajouter jquery.cookie.js
puis ajouter votre js ou jQuery à l'endroit où vous utilisez cette fonction.
Lorsque le navigateur charge la page Web en premier, il charge ce jquery.cookie.js
et après, js ou jQuery, cette fonction est désormais disponible
Résoudre jQuery $ .cookie n'est pas une fonction de ce problème jquery cdn update pour résoudre ce problème
<script src="https://code.jquery.com/jquery-3.3.1.js" integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60=" crossorigin="anonymous"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js" integrity="sha256-T0Vest3yCU7pafRw9r+settMBX6JkKN06dqBnpQ8d30=" crossorigin="anonymous"></script>
J'ai eu ce problème aussi. J'ai découvert que le fait d'avoir une fonction $ (document) .ready qui incluait un $ .cookie dans une balise de script à l'intérieur du corps tout en ayant le cookie chargé dans la tête AU-DESSOUS jQuery comme prévu entraînait le traitement de $ (document) .ready avant le cookie plugin pourrait finir le chargement.
J'ai déplacé le script de chargement du plugin cookie dans le corps avant le script $ (document) .ready et l'erreur a disparu: D