gpt4 book ai didi

javascript - JQuery Are you Sure + Rails Nav 被忽略

转载 作者:行者123 更新时间:2023-12-03 03:40:56 28 4
gpt4 key购买 nike

我有一个 Rails 应用程序,并且想要模拟 onunload 效果以在离开更改之前进行提示。环顾四周时,我发现了Are You Sure? .

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

由于这是 Rails 特定的,我不确定如何通过 Fiddle 真正模拟它。

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

这是 Turbolinks 问题,还是关于 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() {}); 中的声明

关于javascript - JQuery Are you Sure + Rails Nav 被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45626735/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com