rails布局文件中的Javascript文档元素

Javascript document element in rails layout file

本文关键字:Javascript 文档 元素 布局 文件 rails      更新时间:2023-09-26

我正在使用rails开发web应用程序。我有单独的html.erb文件,我在每个文件上运行script.js。我想遵循DRY,所以我想把script.js在我的布局的文件,而不是每个单独的视图文件。

script.js:

if(document.documentElement.clientWidth < 570) {
  //do some stuff
}

当我把它单独放在我的每个视图中时,它工作得很好,但当我只把它放在我的布局文件中时,它不起作用。我有一种感觉,这是因为我使用document。如果这是真的,我不确定我应该用什么代替document。如果这不是真的,那么我不确定是什么错了。

如果你能帮我理解为什么script.js不工作,当我把它放在布局文件,将不胜感激。

你能做的:

把你的文件放入:

lib/assets/javascript或者把你的文件放进去vendors/assets/javascript

之后加载application.js中的文件//=require script.js

在script.js中,如果你想只运行几个页面的脚本,你可以添加条件。例如,您可以检查html页面

中是否存在div。
if ($('#mydiv').length){
  //do something
}

如果你正在使用涡轮链接,情况将会改变,你将需要做更多的事情:你可以安装jquery- turbollinks并把你的方法放在函数

$(document).ready(function () { /* ... */ });