###前提・実現したいこと
個人でRuby on Rails5でアプリを作成しております。
投稿ページ(new)でJqueryプラグインのTag-it!を使ってタグの投稿を実現したいと考えています(Turbolinks5も導入)。
###発生している問題・エラーメッセージ
通常のページ移動で投稿ページに行った場合にはTag-itは問題なく動作しております。
ただ、Turbolinks5を導入し、
投稿ページに行く → ブラウザの戻るボタンで戻る → ブラウザの進むボタンで再び投稿ページへ
という移動をした際に、Tag-it!が2重に動作して?(?)、DOMが二重で生成されてしまいます。
###試したこと
jQuery
1document.addEventListener("turbolinks:before-cache", function() { 2 $('#return-checked').attr('data-return-mark', ''checked); 3});
このような形でTurbolinks5がキャッシュを取る前にマークを付けて、条件分岐を行い、Tag-it!が2重に読み取られないようにしてみても(当たり前なのですが)今度はTag−itが動作をしなくなるという別のエラーが出てしまいました。
また、2重に生成されてしまう部分を強引に削除してもうまくは動きませんでした。
for(var i = 0 ; i < tagitNew.length ; i++){ if(i == 1){ $(".tagit-new").eq(i).remove(); } }
Turbolinks5で用意されている
Jquery
1Turbolinks.clearCache()
を呼べばうまく動作はするのですが、全体のキャッシュが失われてしまうようなのでこれがベストなのか悩んでおります。
部分的にイベントを再読込するような方法はあるものなのでしょうか?
当方JqueryもRailsも初心者で個人で行っているため、言葉の使い方におかしなところがあるかと思いますが何か対処法をご存知の方はご教示願えますと幸いです。
また、Tag-itに関わらず、Turbolinks5を使っていらっしゃる方はブラウザボタンの移動の際にプラグインが2重に起動してしまう問題に対してどのような対処方法を取っていらっしゃるのかもご教示願えますと幸いです。
何か不備などありましたらご教示ください。
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/31 12:32