我想知道如何为特定页面添加其他JavaScript的最好办法是什么?
如,:
<%= f.radio_button :rating, 'positive', :onclick => "$('some_div').show();" %>
使用下面代码
<%= f.radio_button :rating, 'positive' %>
# then in some other file
$('user_rating_positive').click(function() {
$('some_div').show();
}
所以我想我的问题是在哪里/如何包含该JavaScript?我不想填写这个application.js
文件,因为这个JavaScript只适用于这个视图。我应该为每个页面包含一个自定义的JavaScript文件,或者将其保存在头文件的实例变量中?
发布于 2018-01-05 10:02:21
将每个视图的Javascript包含在content_for :head
阻止然后yield
应用程序布局中的块。
例如
那么:
<% content_for :head do %>
<script type="text/javascript">
$(function() {
$('user_rating_positve').click(function() {
$('some_div').show();
}
});
</script>
<% end %>
或者,如果时间更长,则:
<% content_for :head do %>
<script type="text/javascript">
<%= render :partial => "my_view_javascript"
</script>
<% end %>
然后,在布局文件中
<head>
...
<%= yield :head %>
</head>
发布于 2018-01-05 10:51:06
可以这样做:
assets
在现有的application.js中
//= require jquery
//= require jquery_ujs
//= require_tree ./global // requires all js files in global folder
在一个新的admin.js清单文件中
//= require_tree ./admin // requires all js files in admin folder
确保通过编辑config / production.rb来加载这个新的js清单
config.assets.precompile += %w( admin.js )
然后调整您的页面布局,以便您可以包含页头的一些额外的js:
<%= content_for :header %>
然后在你想要包含这个特定的js组(以及正常的应用程序组)和/或任何特定于页面的js,css等的视图中:
<% content_for :header do %>
<%= javascript_include_tag 'admin' %>
<% end %>
你当然可以用css做同样的事情,并以类似的方式将它分组,只应用于网站的某些区域。
https://stackoverflow.com/questions/-100001328
复制相似问题