我在我的rails应用程序上调整我的javascript和css文件有很多麻烦.通过范围界定,我的意思是:
如何处理仅在一个页面或一个控制器中使用的java脚本和CSS?
我尝试了一些解决方案,但它们都很复杂而且不那么优雅:
我看到了一些像这样的建议:直接在我的.erb文件中包含我的.js文件,如下所示:
<% content_for :head do %>
<script type="text/javascript">
<% end %>
Run Code Online (Sandbox Code Playgroud)
然后在应用程序布局中产生它.但这意味着再向服务器发出一个请求以获取.js文件.我认为只保留一个.js文件和一个由资产管道创建的应用程序的.css文件很重要
我看到了一些其他的建议,比如测试我的HTML标签是否存在于DOM上,使用jquery 的.length方法.如果存在特定标签,则仍然意味着在每个页面上进行测试(知道它将仅存在于一页或两页中).
我找到了一个易于实现的解决方案,在我看来,它很优雅.
我正在尝试使用JavaScript和jQuery创建一个移动面板.
我做了这个工作演示,JS部分看起来像这样:
$("nav.nav").hover(function(){
$("nav.nav").animate({left:'-5px'},100,"swing");
},
function(){
$("nav.nav").animate({left:'-170px'},100,"swing");
});
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,它正在工作,但是当我离开面板时我想添加延迟,因为有一段时间,我错误地将面板留下1个像素,这很烦人.
我试着setTimeout("javascript function", milliseconds);像这样使用:
$("nav.nav").hover(function(){
$("nav.nav").animate({left:'-5px'},100,"swing");
}, setTimeout(function(){
$("nav.nav").animate({left:'-170px'},100,"swing");
},10));
Run Code Online (Sandbox Code Playgroud)
(超时中的回调函数)但它不起作用,我不知道为什么.