Javascript 如果在某些页面上运行脚本-rails
在每个页面加载上运行if语句来检查是否应该运行脚本,这是一个坏主意。例如,我有一个很长的javascript文件,只有在使用表单时才需要运行它。但目前在我的每个文件中,我都包含了Javascript 如果在某些页面上运行脚本-rails,javascript,ruby-on-rails,if-statement,controller,Javascript,Ruby On Rails,If Statement,Controller,在每个页面加载上运行if语句来检查是否应该运行脚本,这是一个坏主意。例如,我有一个很长的javascript文件,只有在使用表单时才需要运行它。但目前在我的每个文件中,我都包含了document.addEventListener(“turbolinks:load”,function(),这意味着它在每次页面加载时都会运行 在我的脚本中,我很想在文件开头写一条if语句,如下所示: document.addEventListener("turbolinks:load", function() {
document.addEventListener(“turbolinks:load”,function()
,这意味着它在每次页面加载时都会运行
在我的脚本中,我很想在文件开头写一条if语句,如下所示:
document.addEventListener("turbolinks:load", function() {
controller = $('body').data('controller')
action = $('body').data('action')
if controller == foo && action == bar
runScripts();
else
return;
function runscripts() {
...
我对在rails中使用javascript还是有点陌生,所以我不知道其他的方法。有什么建议吗?您可以使用控制器和操作名称来定义布局的主体元素
<body class="<%= controller_name %> <%= action_name %>">
<%= yield %>
</body>
在这种情况下,一个小的条件可以防止在不应该触发的页面上触发特定于页面的行为
为了更清楚,请阅读
$(document).on("turbolinks:load", function() {
if (!($(".foo.bar").length > 0)) {
return;
}
//--- page specific js code after above condition ---
});