错误:$ .cookie不是函数

时间:2012-01-11 07:43:49

标签: jquery cookies

我已经使用以下代码添加了jQuery插件:

<script type="text/javascript" src="js/jquery.cookie.js"></script>

我的激活cookie代码如下:

$(document).ready(function() {
    $('ul.sub_menu a').click(function() {
        $('#sliderid, .prodcls').css("display","none");
        $.cookie('links','linkdisplay',{ expires: 2 });

        // var txt = $(this).text();
        //console.log("you clicked"+txt);
     });

    var links = $.cookie('links');
    if (links == 'linkdisplay') {$('#sliderid, .prodcls').css("display","none");};
}); 

但是在firebug控制台中它给出了一个错误:

  

$ .cookie不是函数[打破此错误] var links = $ .cookie('links');

怎么了?

4 个答案:

答案 0 :(得分:2)

我不确定这是否是确切的问题,但肯定这是问题之一。

$(document).ready(function() {

   // click Method start here
   $('ul.sub_menu a').click(function() {
       $('#sliderid, .prodcls').css("display","none");
       $.cookie('links','linkdisplay',{ expires: 2 });
       // var txt = $(this).text();
       //console.log("you clicked"+txt);
   });
   // click method ends here

 // this part is not inside any function, this will be executed on document ready before any click happens
 var links = $.cookie('links');
 if (links == 'linkdisplay') {$('#sliderid, .prodcls').css("display","none");};
});

问题是,你是在点击处理程序功能上保存cookie,但是在文件就绪之前检索,这是在元素发生任何点击之前,所以当你试图在文件准备就绪时,不会有任何带有名称链接的cookie检索。请参阅我在代码中的评论

答案 1 :(得分:2)

错误表示插件缺失。

这可能有很多原因,一些常见的原因是:

  • 在插件之后加载Jquery,(即Jquery之前的插件。)
  • 插件路径错误或Web服务器无法访问。
  • 插件与JQuery版本不兼容。

我希望这会有所帮助。

答案 2 :(得分:1)

如果js文件夹中没有jquery.cookie.js,请通过从here下载将其添加到该文件夹​​中。

代码似乎很好。第$.cookie('links','linkdisplay',{ expires: 2 });行将名称为“links”和“linkdisplay”的Cookie保存为值。

您可以参考Get all cookies with Javascrip了解有关coookie插件的更多信息。

如果没有解决,请使用您的HTML代码进行更新,并告诉我您要在Cookie中保存的具体内容。

答案 3 :(得分:0)

我一直在尝试使用代码获取cookie:

jQuery.cookie('my_cookie')

返回错误,所以我把它改成了这个来检查它:

$.cookie('cc_cookie_accept')

现在正在运作。 我假设插件的版本与jQuery版本不兼容,就像user529649所说的那样。