我有一个 Rails 5.1 应用程序,其中使用https://www.kryogenix.org/code/browser/sorttable/中的sortable.js库来对表进行一些简单的客户端排序。
我遇到一个问题,当页面首次加载时,表排序不起作用。(它根本没有响应。)如果您随后手动重新加载页面(cmd-R 或等效命令),那么它就会起作用。
经过一番搜索,我认为问题是由 Turbolinks 引起的。像这样的帖子,以及其他人建议如何修改 JS 代码来解决它: Rails javascript 仅在重新加载后才起作用
要引用该页面上的答案,您必须通过执行以下操作告诉 Turbolinks 进行加载:
document.addEventListener("turbolinks:load", function() {
my_func();
})
Run Code Online (Sandbox Code Playgroud)
然而,我不是 JS 专家,所以有点讨厌在 sortable.js 代码中过多地胡闹。我正在寻求以侵入性最小的方式解决问题的帮助。