前提・実現したいこと
レビュー一覧を表示するページで、レビューカードの右側に、「通報する」ボタンを表示するためのドロップダウンメニューを作りたいです。
発生している問題
例えば1番上のカードのメニューボタンをクリックしたときに、その下にあるすべてのカードでもメニューが開いてしまいます。
メニューボタンをクリックしたカードのみ、メニューが開くようにしたいです。
該当のソースコード
HTML
1<div class="review-card"> 2 <div class="card-header"> 3 <div class="header-top"> 4 <a href="#"><img class="user-icon" src="#" alt="user-icon"></a> 5 <a href="#"><p class="user-name">Aさん</p></a> 6<!-- ここからドロップダウンメニュー --> 7 <div class="dropdown-wrap"> 8 <i class="fas fa-ellipsis-h"></i><!-- FontAwesomeを使用 --> 9 <div class="dropdown-menu" style="display:none;"> 10 <ul class="dropdown-ul"> 11 <li><a href="" class="dropdown-text">通報する</a></li> 12 </ul> 13 </div> 14 </div> 15<!-- ここまで --> 16 </div> 17 <div class="header-bottom"> 18 <div class="review-star"> 19 <div class="rating-star"><span style="width: 100%;" class="rating-star-r"></span></div> 20 </div> 21 <p class="updated-at">2020-08-01 17:38:17</p> 22 </div> 23 </div> 24 <div class="card-body"> 25 <p class="review-content">すごくよかったです</p> 26 </div> 27 </div>
jQuery
1$(function(){ 2 $('.dropdown-wrap').click(function(){ 3 $('.dropdown-wrap').find('.dropdown-menu').toggle(0); 4 }); 5 $('.dropdown-wrap,.dropdown-menu').hover(function(){ 6 over_flg = true; 7 }, function(){ 8 over_flg = false; 9 }); 10 $('body').click(function(){ 11 if (over_flg == false) { 12 $('.dropdown-menu').hide(0); 13 } 14 }); 15});
教えていただきたいこと
メニューボタンをクリックしたカードでのみ、メニューが開くようにしたいのですが、どのようにすればいいでしょうか?
また、このような機能を「ドロップダウンメニュー」と呼ぶのは正しいのでしょうか?
検索で使いやすい、より適切な名称があれば教えていただけると嬉しいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/03 16:37