【发布时间】:2020-03-09 09:56:06
【问题描述】:
在我的 Rails 5.2.2 应用程序中,我使用的是Turbolinks。
我发现当我离开一个页面时,启动的功能会继续。
我在检查主体类的return 语句下组织了我的函数。在下面的示例中,如果主体类不是 foobar,则以下函数不会运行。
// assets/javascripts/pages/foobar.js
var goLoop;
$(document).on("turbolinks:load", function() {
if (!$("body").hasClass("foobar")) {
return;
}
return goLoop();
});
goLoop = function() {
return setTimeout((function() {
console.log("Hello");
return goLoop();
}), 1000);
};
- 第一次访问页面,触发
goLoop函数。 - 当我点击远离页面的链接时,该函数运行。如果我没有使用 Turbolinks,就不会发生这种情况。
- 如果我点击另一个链接返回页面,该功能会再次触发,所以现在它会运行两次。
如何在不禁用 Turbolinks 的情况下避免这种情况?
【问题讨论】:
标签: javascript ruby-on-rails ruby-on-rails-5 turbolinks