前提・実現したいこと
Railsアプリを制作中です。
index.htmlに表示されている行をクリックするとモーダルウィンドウでshow.htmlを表示するようにしています。
しかし、行の中にあるボタンをクリックすると画面遷移とモーダル表示が重複してしまい、フリーズしてしまうので、
%tdの一部分のみ、クリックしてもモーダル表示しないようにしたいです。
該当のソースコード
haml
1#index.html.haml 2- @clients.each do |client| 3 %tr{ data: { target: "#client-modal#{client.id}" , toggle: :modal } } 4 %td= client.company_name 5 %td= client.base_name 6 %td= client.phone 7 %td= client.fax 8 %td.text-right 9 = show_btn(client) 10 = edit_btn(client) 11 = destroy_btn(client) 12
試したこと
一行ずつモーダル表示させるコードを書く
%td{ data: { target: "#client-modal#{client.id}" , toggle: :modal } }= client.company_name %td{ data: { target: "#client-modal#{client.id}" , toggle: :modal } }= client.base_name %td{ data: { target: "#client-modal#{client.id}" , toggle: :modal } }= client.phone %td{ data: { target: "#client-modal#{client.id}" , toggle: :modal } }= client.fax
しかし、同じコードを何度も書くのは、可読性が下がる。
試したこと2
colgroupでまとめてdata属性を与える
%colgroup{ span: '4', data: { target: "#client-modal#{client.id}" , toggle: :modal }} - @clients.each do |client| %tr{ data: { target: "#client-modal#{client.id}" , toggle: :modal } } %td= client.company_name %td= client.base_name %td= client.phone %td= client.fax %td.text-right = show_btn(client) = edit_btn(client) = destroy_btn(client)
モーダル表示しなくなってしまった。
試したこと3
javascriptで属性を削除したい
javascript
1#index.html.haml 2:javascript 3 $(function() { 4 $('tr').removeAttr('data'); 5 });
ボタン部分のみdata属性を削除するにはどのように書けばいいかわかりませんでした????
###どの方法ならうまくいくのか?
javascriptを触らなきゃいけなさそうだけど…
あなたの回答
tips
プレビュー