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之前链接插件,我会收到预期的错误。
答
我检查了我的应用程序通过“资源”选项卡提供的javascript文件,并发现我的application.js
中仍然有JQuery,因此,大概在加载文件时重新定义了没有Coookie的JQuery。
发生这种情况是因为我从使用gem切换到使用外部CDN加载JQuery,但没有而是重新编译(或删除)我的资产。
从public/assets
去除编译资产解决
确保你做到这一点的JavaScript加载后(文件准备好):http://jsfiddle.net/cq9m8/ – pickypg 2013-05-02 02:42:23
您是否使用'HTTP://localhost'或'file:// localhost'?由于您的网址没有“http:”前缀,因此它们会继承用于包含网页的协议。 – Barmar 2013-05-02 02:45:29
提供包含$ .cookie的代码段/块 – 2013-05-02 02:45:53