JQuery 你确定 + 轨道导航被忽略



我有一个Rails应用程序,并希望模拟onunload效果,以便在离开更改之前进行提示。在环顾四周时,我发现了你确定吗?

我在表单上实现了它,它适用于页面刷新,但它不适用于离开页面的链接。我认为这是基于turbolink的,所以我尝试在ready语句中运行$('body').attr("data-no-turbolink", "true");,但是我得到了相同的效果。

由于这是特定于Rails的,因此我不确定如何通过小提琴真正模拟它。

我尝试在表单的form和 id 上全局运行它,并且都给出了上述结果。$('form').areYouSure();

这是一个涡轮链接问题,还是关于beforeunload的已知问题(我在 Git 问题中找不到(?

我也认为这是涡轮链接问题。Turbolinks 5gem 'jquery-turbolinks', '~> 2.1'不兼容,这将解决jquery libraries的这个问题。

关于这个的讨论 https://github.com/kossnocorp/jquery.turbolinks/issues/56

原因是事件名称已更改,因此 gem 不再工作。

https://github.com/codedance/jquery.AreYouSure/blob/master/jquery.are-you-sure.js

如果您检查jquery.are-you-sure.js,您可以看到其中的函数包装在$(document).ready()语句中,(function($) { })(jQuery);

https://github.com/codedance/jquery.AreYouSure/blob/master/jquery.are-you-sure.js

您可以通过禁用特定链接上的涡轮链接来测试这一点

https://github.com/turbolinks/turbolinks#disabling-turbolinks-on-specific-links

如果你有Turbolinks < 5你可以通过安装一个名为gem 'jquery-turbolinks', '~> 2.1'的 gem 来解决这个问题,否则你需要了解为什么 jquery 代码在页面更改时没有执行......您需要更改该$(document).ready()语句或(function($) { })(jQuery);语句$(document).on("turbolinks:load", function() {});

最新更新