【发布时间】:2017-04-26 11:53:11
【问题描述】:
我在这里看到了几篇关于这个问题的文章以及博客文章。 到目前为止,他们都没有帮助过我,例如这个: Same rails and turbolink version
这是一个不刷新页面就无法加载的js示例:
document.addEventListener('turbolinks:load', function() {
document.getElementById(id[0]).oninput=function () {
validate(id[0]);
}
});
没有 Turbolinks 的 Javascript 运行良好,删除 Turbolinks 对我来说不是一个解决方案。
注意:如果我需要来自 application.html.erb 的特定 JS 文件,它确实有效,但是它会运行网站上所有页面上的每个文件,并且 JS 必须是特定于页面的。
【问题讨论】:
-
你能通过console.log输出任何东西到控制台吗?从您的 turbolinks:load 回调函数中删除所有内容并添加 console.log('test');看看这是否有效。
-
@l.varga document.addEventListener('turbolinks:load', function() { document.getElementById(id[0]).oninput=console.log('test'); });像这样?没用,没有
-
不像这样 - 只是控制台日志用于调试并查明问题的实际来源,无论是 turbolinks:load 没有被侦听器拾取(其中,在我的意见,不应该是问题),或者你的函数的其余部分(更高的机会): document.addEventListener('turbolinks:load', function() { console.log('test'); });跨度>
-
现在按照你的建议做了,只有在刷新页面后仍然有效。
-
您必须从 application.html.erb 中获取哪个文件才能使其工作?它是一个turbolinks文件吗?因为现在似乎 turbolinks:load 没有被触发,我能想到的唯一解释是 turbolinks 没有被执行。
标签: javascript ruby-on-rails turbolinks