在每次加载页面时运行 if 语句来检查我是否应该运行脚本是不是一个坏主意。例如,我有一个非常长的 javascript 文件,只需要在使用表单时运行。但目前在我的每个文件中我都包含了 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() {
...
我对将 javascript 与 rails 结合使用还是有些陌生,所以我不知道其他方法。有什么建议么?
最佳答案
您可以使用controller 和action 名称限定布局的 body 元素。
<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 ---
});
在这种情况下,一个小条件可以防止页面特定行为在不应触发的页面上被触发。
为了更清楚阅读 this
关于javascript - 如果在特定页面上运行脚本 - rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43107363/