2017-07-10 129 views
-1

我有一个Rails 5.1应用程序,我在其中使用来自https://www.kryogenix.org/code/browser/sorttable/sortable.js库,以便对表执行一些简单的客户端排序。在Rails 5中使用sortable.js和turbolinks 5

我遇到了一个问题,首次加载页面时,表格排序不起作用。 (它根本没有响应。)如果您然后手动重新加载页面(cmd-R或相当的),那么它确实工作。

经过一番搜索后,我认为问题是由turbolinks造成的。帖子像这样的,和其他人建议如何修改JS代码来解决这个问题:

document.addEventListener("turbolinks:load", function() { 
    my_func(); 
}) 

我:Rails javascript only works after reload

从该网页上你要告诉turbolinks通过这样做来加载答案引述但是,我不是一位JS专家,因此在sortable.js代码中太多讨厌。我正在寻求帮助,以解决问题的方式最少。

+0

这是不太清楚的问题是,在您的文章什么 –

+0

需要明确的是:问题是:有没有简单的方法来修改sortable.js库,以便它可以与turbolinks一起使用。谢谢! –

回答

0

发布工作解决方案,为了未来的Google-ers。

我必须做两件事情来得到这个工作:

1:注释掉线在初始化功能,阻止其运行不止一次的顶部。所以,我的初始化函数的sorttable.js上看起来是这样的:

sorttable = { 
     init: function() { 
     // Had to comment these top to out to get things to work with turbolinks 
     // quit if this function has already been called 
     //if (arguments.callee.done) return; 
     // flag this function so we don't do the same thing twice 
     //arguments.callee.done = true 
  • 添加该代码的文件在别的地方。 (我个人补充它,说:“在window.onload = sorttable.init;”行之后

    document.addEventListener("turbolinks:load", function() { 
        sorttable.init(); 
    })