##解決したいこと
複数のカラム(td)があるテーブルの行(tr)全体をリンクにしてクリック可能にしたいと思い実装しています。
テーブルをindex.html.erbに記述しており、クリックすることでそのデータの詳細ページであるshow.html.erbに遷移したいと考えています。
##前提
・tdのうちの一つにlink_toを記述して実装した場合は遷移することが可能でしたので、パスの指定は問題ない。(パスの指定にはPrefixパスを用いています。)
・試行錯誤の一つとしてJavaScriptを用いていますが、JSファイルは正常に読み込めています。
##試したこと
1、link_to do を使ってtrを囲ってしまえばいいのでは?と思い実装しましたがうまくいかず。調べたところ今回のようなテーブルデータの場合は使用できないようでした。
2、jQueryで複数の要素が入った行全体をリンク扱いとすることができると知り、実装してみたところリンク扱いとすることは成功はしました。ですが、Prefixパスでのリンク先の指定方法がわからず、遷移することができません。試しにリンク先を記述する場所に、"<% character_move_path(id:move)%>"や"character_move_path(id:move)"と記述して試してみましたがうまくいかずでした。正直書き方が間違っているのか、そもそもPrefixでの指定はできないのすらわからない状態です。
index
1<% @moves.each do |move| %> 2 <tr class="moves-contents" data-href="Prifxパスの場合、ここのリンク先の指定ができない"> 3 <td><%= move.moves_name %></td> 4 <td><%= move.command %></td> 5 <td><%= move.hitbox %></td> 6 <td><%= move.startup %></td> 7 <td><%= move.block %></td> 8 </tr> 9<% end %>
js
1//jQuery.js(もしくは対象HTMLの<script>タグ内に記述) 2$(function($) { 3 //moves-contentsクラスの行をマウスオーバーするとカーソルをポインターに変更 4 $(".moves-contents").css("cursor","pointer").click(function() { 5 //クリックで「data-href」のリンク先へ遷移 6 window.href = $(this).data("href"); 7 }); 8 });
##最後に
この他、解決の際に必要なコード等がございましたら、ご指定いただきたく存じます。
また、jQuery以外によい実装方法がございましたら、解決済み後でも構いませんので、ご教授いただけると嬉しいです!励みになります!!
何卒よろしくお願いいたします。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/13 21:44
2021/07/13 22:46
2021/07/13 23:46
2021/07/14 07:06
2021/07/15 07:09