2012-11-23 70 views
0

我有一个html文件,我需要用Rails风格重写它。我试图阅读导轨指南,但找不到有用的信息。这是我拥有的HTML的一部分。将Javascript集成到Ruby on Rails中

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 

<% content_for :head do -%> 
    <%= stylesheet_link_tag 'css.css' %> 

<% end %> 

<head> 
<title>index</title> 

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<link rel="stylesheet" media="all" type="text/css" href="css/css.css" /> 
<script language="JavaScript" type="text/javascript" src="images/jquery-1.7.1.min.js"></script> 
<script language="JavaScript" type="text/javascript" src="images/jQuery.infiniteCarousel.js">   
</script> 
<script language="JavaScript" type="text/javascript" src="images/jQuery.tbSwitching.js"></script> 
<script language="JavaScript" type="text/javascript" src="images/myfocus-1.2.4.full.js"></script> 
<script language="JavaScript" type="text/javascript" src="images/mF_expo2010.js"></script> 
<link href="images/mF_expo2010.css" rel="stylesheet" type="text/css" /> 
</head> 
<body> 
<center> 
<div id="top"> 
<div class="one"> 
    <div class="one1"> 
     <img src="images/ico1.png" width="225" height="58"/> 
    </div> 
    <div class="one2"> 
     <div class="one3"> 
       <div class="one4">Login/Sign up</div> 
       <div class="one4">Create an Account </div>  
       <div class="one5">shopping bag</div> 
     </div> 
    </div> 
    </div> 
</div> 
<div class="two"> 
<% content_for :below_body do -%> 
    <%= javascript_include_tag 'images/jquery-1.7.1.min.js' %> 
    <%= javascript_include_tag 'images/jQuery.infiniteCarousel.js' %> 
<%= javascript_include_tag 'images/jQuery.tbSwitching.js' %> 
<%= javascript_include_tag 'images/myfocus-1.2.4.full.js' %> 
    <%= javascript_include_tag 'images/mF_expo2010.js' %> 
<% end %> 

<script> 
$(function(){ 
    $("#top .two3").hover(function(){ 
    $("#top .two3").removeClass("on").next(".two4").removeClass("ac"); 
    $(this).addClass("on").next(".two4").addClass("ac");   
},function(){ 

}); 
}) 
</script> 
<script> 
$(function(){ 
    $("#top .two5 a").hover(function(){  
    $(this).addClass("on");  
},function(){ 
    $(this).removeClass("on"); 
    }); 
}) 
</script> 
...... 
</body> 
</html> 

我试图通过使用下面的代码在body标签中修改它,但似乎没有工作。

<% content_for :below_body do -%> 
    <%= javascript_include_tag 'images/jquery-1.7.1.min.js' %> 
    <%= javascript_include_tag 'images/jQuery.infiniteCarousel.js' %> 
    <%= javascript_include_tag 'images/jQuery.tbSwitching.js' %> 
    <%= javascript_include_tag 'images/myfocus-1.2.4.full.js' %> 
    <%= javascript_include_tag 'images/mF_expo2010.js' %> 
<% end %> 

我应该把它放在头里面吗? 我也应该做任何与标签? 谢谢

回答

0

一般的经验法则是库应该进入头部(如jQuery),所有其他使用jQuery的代码应该在代码下面。原因是,你想要作为一个DOM元素与jQuery交谈的所有内容都必须在文档中呈现(即在你的js代码之上)。

我通常会在页面末尾附加所有内容,即所有脚本。通过这种方式,页面本身的加载时间将减少,因为来自HTTP的请求不首先加载JS,然后加载HTML。

0

你得到了什么错误?没有看到错误,我们无法知道问题来自何处。

你在保留你的JS文件在rails_root/app/assets/javascripts/images?这就是你上面所说的。

例如,<%= javascript_include_tag 'images/jquery-1.7.1.min.js' %>会创建此标记:<script type="text/javascript" src="/javascripts/images/jquery-1.7.1.min.js?1284139606"></script>,其中包含与构建文件的时间有关的时间戳。

如果您在生产模式而不是开发模式下运行服务器,这也可能是一个问题。在生产模式下,您需要预编译您的资产:rake assets:precompile