首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript可直接在视图中工作,但在包含在资产管道中时无法工作

Javascript可直接在视图中工作,但在包含在资产管道中时无法工作
EN

Stack Overflow用户
提问于 2013-05-11 00:30:31
回答 1查看 310关注 0票数 0

要让我的javascript通过资产管道工作,我会错过什么?

当我尝试使用javascript链接来处理资产时,它不能正常工作,但是当我将jQuery函数直接放到视图中时,它工作得很好。

我已经安装了jquery-rails和咖啡-rails的gem。我在vendor\assets\javascript\jquery.chained.mini.js.中保存了jquery.chained.mini.js代码

我更新了我的application.js来包含这个插件。

我包含了

代码语言:javascript
复制
$("#series").chained "#mark"

将脚本块添加到我的app\assets\javascript\vehicle.js.coffee文件中。

加载视图时,标题下将列出以下内容:

代码语言:javascript
复制
<head>
        . Edited for brevity
        .
        .   
    <script src="/assets/jquery.js?body=1" type="text/javascript"></script>
        <script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script>
        <script src="/assets/equipment.js?body=1" type="text/javascript"></script>
        <script src="/assets/sessions.js?body=1" type="text/javascript"></script>
        <script src="/assets/static_pages.js?body=1" type="text/javascript"></script>
        <script src="/assets/users.js?body=1" type="text/javascript"></script>
        <script src="/assets/vehicles.js?body=1" type="text/javascript"></script>
        <script src="/assets/jquery.chained.mini.js?body=1" type="text/javascript"></script>
        <script src="/assets/application.js?body=1" type="text/javascript"></script>  
        .
        .
        .
  </head>

jquery插件和vehicles.js页面都在那里。vehicle.js的源代码如下所示-

代码语言:javascript
复制
(function() {
  $("#series").chained("#mark");
}).call(this);

这将使编辑视图中的下拉列表相互依赖。但是,无论第二个下拉框中的内容是什么,所有选项都可用。

但是,如果我将脚本直接放到视图中,如下所示,它会完美地工作。

edit.html.erb

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>

<link href="/assets/application.css?body=1" media="all" rel="stylesheet" type="text/css" />
<link href="/assets/custom.css?body=1" media="all" rel="stylesheet" type="text/css" />
<link href="/assets/equipment.css?body=1" media="all" rel="stylesheet" type="text/css" />
<link href="/assets/sessions.css?body=1" media="all" rel="stylesheet" type="text/css" />
<link href="/assets/static_pages.css?body=1" media="all" rel="stylesheet" type="text/css" />
<link href="/assets/users.css?body=1" media="all" rel="stylesheet" type="text/css" />
<link href="/assets/vehicles.css?body=1" media="all" rel="stylesheet" type="text/css" />

<script src="/assets/jquery.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script>
<script src="/assets/equipment.js?body=1" type="text/javascript"></script>
<script src="/assets/sessions.js?body=1" type="text/javascript"></script>
<script src="/assets/static_pages.js?body=1" type="text/javascript"></script>
<script src="/assets/users.js?body=1" type="text/javascript"></script>
<script src="/assets/vehicles.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery.chained.mini.js?body=1" type="text/javascript"></script>
<script src="/assets/application.js?body=1" type="text/javascript"></script>  

<meta content="authenticity_token" name="csrf-param" />
<meta content="PJnMEwkx/Ap2MQIHUsIcu0rYh+C6Or8VoVB9j2q9ptU=" name="csrf-token" />

<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<body>

<div>
<select id="mark" class="span2">
  <option value="">--</option>
  <option value="bmw">BMW</option>
  <option value="audi">Audi</option></select>
<select id="series" class="span2"><option value="">--</option>
  <option value="series-3" class="bmw">3 series</option>
  <option value="series-5" class="bmw">5 series</option>
  <option value="series-6" class="bmw">6 series</option>
  <option value="a3" class="audi">A3</option>
  <option value="a4" class="audi">A4</option>
  <option value="a5" class="audi">A5</option>
</select>

<script type="text/javascript" charset="utf-8">
  $(function(){$("#series").chained("#mark"); 
  });
</script>

</div>

</div>
</body>
</html>

有人能解释一下为什么代码不能在assett管道上工作,而是在我把它放入视图时直接工作吗?

EN

回答 1

Stack Overflow用户

发布于 2013-05-11 00:35:09

尝试预编译资产:

bundle exec rake assets:precompile

http://guides.rubyonrails.org/asset_pipeline.html

然后重新启动Rails。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16486808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档