在Ruby on Rails中,如果视图需要使用在应用程序布局末尾加载的jQuery怎么办?

问题描述

| 一种推荐的做法是在应用程序布局的末尾加载jQuery:
= yield

= render \'shared/footer\'

= javascript_include_tag \'jquery\'
因此页面呈现速度更快,且没有Javascript或jQuery的障碍。但是,如果每个视图都需要做一些特殊的事情怎么办?例如,
index
视图需要执行某些操作,
show
视图需要执行其他操作,因此Javascript代码要么位于这些视图模板中,要么包含在这些视图模板中,但此时,
jquery.js
文件已还没有加载(直到页面末尾)?
jquery.js
可以在
yield
之前加载,但是它位于页面的前面。     

解决方法

您可以使用content_for 在布局中
yield
render \'footer\'
javascript_include_tag \'jquery\'
yield :custom_javascript
在视图中
<%= content_for :custom_javascript do %>
<script type=\"text/javascript\">alert(jQuery)</script>
<% end %
http://guides.rubyonrails.org/layouts_and_rendering.html#using-content_for     ,丰山是对的另外请记住,在使用jQuery时请检查您的dom是否已加载。 因此,将其包装为:
$(function(){
   // your js code here
});
    

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...