Dyl*_*tle 1 javascript if-statement controller ruby-on-rails
在每个页面加载上运行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() {
...
Run Code Online (Sandbox Code Playgroud)
我仍然有点使用带有rails的javascript,所以我不知道另一种方式.有什么建议?
您可以使用控制器和操作名称来确定布局的body元素的范围.
<body class="<%= controller_name %> <%= action_name %>">
<%= yield %>
</body>
Run Code Online (Sandbox Code Playgroud)
现在通过使用我们添加到布局主体的类,我们可以限制页面的某些功能.
$(document).on("turbolinks:load", function() {
if (!($(".foo.bar").length > 0)) {
return;
}
//--- page specific js code after above condition ---
});
Run Code Online (Sandbox Code Playgroud)
在这种情况下,较小的条件可以防止在不应该的页面上触发页面特定的行为.
为了更清楚,请阅读此内容
归档时间: |
|
查看次数: |
891 次 |
最近记录: |