Bootstrapを使用してWebアプリケーションを作成していますが、その際に使用したいpopoversの動的な変更に苦戦しています。
1日ネットサーフィンしていましたが、調べ方が良くなかったのか理解が及ばなかったのか、中々良い方法が見つかりませんでした。
そこで、詳しい方にご教授願いたいと思い、久しぶりに質問させていただきます。
前提・実現したいこと
カレンダーの日付にあるボタンをクリックすることで、ボタンに設定してあるonclick
属性のget_post(date)
によりJavaScriptが呼び出され、その時にajaxから取得してきたJSONデータを、その日付の横から飛び出るpopoverで詳細な情報をポップアップしたいと考えています。
完成予定図
発生している問題
選択したボタンに対するpopoverのtitle
属性(data-original-title
属性?)とdata-content
属性の値を変更したいのですが、どのようにそれを対応した各々のpopoverの場所に入れれば良いのか分かりません。
そこで「この要素に対して起動するから$(this)
を使えば良いんじゃない?」という安直かつうろ覚えで使ってみたもののダメでしたし、例えば$('[data-toggle="popover"]')
としてしまうと、全てのpopoverが起動してしまうし…。
ボタンを押したときに起動する、対応する日付のJSONデータをajaxで持ってくるところまでは成功していますが、その後のpopoverに入れる処理に困っています。
html
1<table class="table"> 2 <tr> 3 <th>日</th> 4 <th>月</th> 5 <th>火</th> 6 <th>水</th> 7 <th>木</th> 8 <th>金</th> 9 <th>土</th> 10 </tr> 11 <tr> 12 <td></td> 13 <td>1</td> 14 <td>2</td> 15 <td>3</td> 16 <td><button class="btn badge badge-danger rounded-pill calender" data-toggle="popover" title="" 17 data-content="" data-date="2021-02-04" onclick="get_post('2021-02-04')">4</button></td> 18 <td><button class="btn badge badge-danger rounded-pill calender" data-toggle="popover" title="" 19 data-content="" data-date="2021-02-05" onclick="get_post('2021-02-05')">5</button></td> 20 <td><button class="btn badge badge-danger rounded-pill calender" data-toggle="popover" title="" 21 data-content="" data-date="2021-02-06" onclick="get_post('2021-02-06')">6</button></td> 22 </tr> 23</table>
javascript
1//表示内容データ 例としてある1日のデータをサンプルとして持ってきています 2data = [ 3 { 4 "item": "アイテム01", 5 "message": "説明文01", 6 }, 7 { 8 "item": "アイテム02", 9 "message": "説明文02", 10 } 11] 12//投稿 13function get_post(date) { 14 let text = ""; 15 for (let i = 0; i < data.length; i++) { 16 text += data[i]["item"] + data[i]["message"]; 17 } 18 $(this).attr("title", date); 19 $(this).attr("data-content", text); 20 $(this).popover('show'); 21}
そのボタンを押した日に対するpopoverの内容が更新されません。
もし良い方法があればご教授願います。よろしくお願いします????
補足情報(バージョン情報)
bootstrap/4.5.0/css
bootstrap/4.1.3/js
jquery/1.11.0
popper.js/1.14.3
Google Chrome ver.88.0
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/20 14:58