JQuery插件使用给出“未定义”错误

问题描述:

本地主机上的Chrome on Rails。下面是页面的修剪版本:JQuery插件使用给出“未定义”错误

<!DOCTYPE html> 
<head> 
    <link href='http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.min.css' rel='stylesheet'> 
    <script src='https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js' type='text/javascript'></script> 
    <script src='http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/js/bootstrap.js' type='text/javascript'></script> 
    <script src='http://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.3.1/jquery.cookie.min.js' type='text/javascript'></script> 
    <meta content="authenticity_token" name="csrf-param" /> 
    <meta content="blahblah=" name="csrf-token" /> 
    <link href="/assets/application.css?body=1" media="all" rel="stylesheet" type="text/css" /> 
    <script src="/assets/application.js?body=1" type="text/javascript"></script> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0 maximum-scale=1.0"> 
</head> 
<body data-action='index' data-controller='application'> 
</body> 

在Chrome控制台(以及在脚本中越往下),$.cookie是不确定的,$.cookie("a", "b")抛出一个错误。

我试了几个其他CDN,但同样的问题。

编辑: 我想在Chrome的Javascript控制台,这(我认为)页面加载后运行的东西了。我可以检查“资源”选项卡,并看到插件已被加载没有问题。如果我重新排列以在Jquery之前链接插件,我会收到预期的错误。

+1

确保你做到这一点的JavaScript加载后(文件准备好):http://jsfiddle.net/cq9m8/ – pickypg 2013-05-02 02:42:23

+1

您是否使用'HTTP://localhost'或'file:// localhost'?由于您的网址没有“http:”前缀,因此它们会继承用于包含网页的协议。 – Barmar 2013-05-02 02:45:29

+1

提供包含$ .cookie的代码段/块 – 2013-05-02 02:45:53

我检查了我的应用程序通过“资源”选项卡提供的javascript文件,并发现我的application.js中仍然有JQuery,因此,大概在加载文件时重新定义了没有Coookie的JQuery。

发生这种情况是因为我从使用gem切换到使用外部CDN加载JQuery,但没有而是重新编译(或删除)我的资产。

public/assets去除编译资产解决