我有一个 Rails 应用程序,想onunload
在离开更改之前模拟提示效果。在环顾四周时,我发现你确定吗?.
我在表单上实现了它,它适用于页面刷新,但它不适用于离开页面的链接。我认为这是turbolink
基于所以我尝试$('body').attr("data-no-turbolink", "true");
在ready
语句中运行,但是我得到了相同的效果。
由于这是特定于 Rails 的,我不确定如何通过 Fiddle 真正模拟它。
我已经尝试form
在表单的 id 和 id 上全局运行它,并且都给出了上述结果。$('form').areYouSure();
这是一个 turbolinks 问题,还是一个已知问题(我在 Git 问题中找不到)关于beforeunload
?
我也相信这是 turbolinks 的问题。Turbolinks 5
不是更兼容gem '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
您可以通过禁用特定链接上的 turbolinks 来测试这一点
https://github.com/turbolinks/turbolinks#disabling-turbolinks-on-specific-links
如果你有Turbolinks < 5
你可以通过安装一个名为 的 gem 来解决这个问题gem 'jquery-turbolinks', '~> 2.1'
,否则你需要了解为什么 jquery 代码没有在页面更改时执行......你需要更改该$(document).ready()
语句或(function($) { })(jQuery);
语句$(document).on("turbolinks:load", function() {});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句