2017-07-10 97 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(); 
    })