前提・実現したいこと
ページに5つの「いいね」ボタンがあって、そのうち任意の3つをクリックしたら、次のページにTurbolinksで遷移する動きを実装しようと考えています。
現在、方針を検討中なのですが、アドバイスや、他の実装方法などがありましたら教えていただけると幸いです。
考えたこと
① jQueryでajax通信を行いHTMLの一部を入れ替える
Turbolinksのような動作を自分で実装する形です。
懸念事項は、ブラウザバックなどの動作までを考えると自分のレベルでは実装が難しそう。
http://www.koikikukan.com/archives/2013/12/05-012345.php
② aタグでの画面遷移をキャンセルする。
全ての「いいね」ボタンにページ遷移用のリンクを設定しておき、preventDefault()を利用する。
3つ目のクリック時のみpreventを利用しない。
懸念事項は、aタグへの操作なのでTubolinksへの干渉があるかもしれない。⇒実装して確認する
https://cpoint-lab.co.jp/article/201802/1629/
③ 3つ目の「いいね」ボタンをaタグに入れ替える。
「いいね」ボタンを2つクリックした段階で、他のボタンを全てaタグに変更する。
懸念事項は、aタグへの操作なのでTubolinksへの干渉があるかもしれない。⇒実装して確認する
調べたこと
jQueryまたはJavascriptで、クリックイベントをトリガーとする場合、Turbolinksでの処理はできなさそう。
Turbolinksは、ページにあるすべての<a>タグにクリックハンドラを1つずつ追加します。
Railsガイド:Turbolinks
jQuery
1#クリック数を取得して3つ目のクリックのときページ遷移を行う。 2$('button').click(function() { 3 location.href = 'http://example.com/'; 4}) 5
補足情報(FW/ツールのバージョンなど)
Turbolinksの利用が前提となっているのは、Heroku(USサーバー)を利用するため応答時間の短縮が目的です。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/12 03:45