Rails(turbolink) x JQuery x DataTableで バックボタンを押すとボタンが 重複する時の対策

Turbolinkって便利だよね。
でも、Jquery等で提供されるライブラリ機能によっては相性が悪い時も多々あり
悩まされるケースに直面する人もいることだろう。

Jqueryが提供しているDataTableを使用していると
ブラウザの戻るボタンで、ページング要素がリセットされず複製されてしまう問題がある。

Trubolinkが原因ではあるが、対応方法を書き溜めておく。

広告

解決策

turbolinks:before-cacheで
すでにDatatableが存在していれば、削除する処理を追加する。

これだけ、
DataTableの初期化はその後に追加すればok

ちなみに

リンクでは$(document).ready(function ()となっているけど
railsのturbolinkでは動作しないので $(document).on('turbolinks:load', function () {とかにすること。

Turbolinkいいやつだけど、
たまにドツボにはまる。



じゃあね〜〜。