前提・実現したいこと
ボタンを押すと、プルダウンでカードやリストが出てくるような、テンプレを作りたいです。
HTMLの<select><option>みたいに、クリックすると出てくる・領域外タップでも閉じるようなイメージです。
クリックするところや出てくるものが、<select><option>形式に限らないため、HTMLとjQueryで作れないかなと思っております。
試したこと
HTML
1<main> 2 <div class="info1">お知らせ1</div> 3 <div class="info2">お知らせ2</div> 4</main> 5 6<div class="_card"> 7 //~お知らせ1 内容~ 8</div> 9<div class="info1_card"> 10 //~お知らせ2 内容~ 11</div>
CSS
1[class$="_card"]{ display: none;}
試したこと
1か所なら以下でできるのですが。
これが画面のいろんなところでいくつも同じ挙動でつかいたいので、
毎度クラスを個別につけるのもどうなのかと悩んでおります。
jQuery
1$(document).on('click', function(e) { 2 if(!$(e.target).closest('.info1_card').length && !$(e.target).closest('.info1').length){ 3 $('.info1_card').hide(); 4 }else if($(e.target).closest('.account').length){ 5 if($('.info1_card').is(':hidden')){ 6 $('.info1_card').show(); 7 }else{ 8 $('.info1_card').hide(); 9 } 10 } 11});
補足
infoの子孫要素に_cardを入れて、クラス付与でやればよいのでは?と思われるかもですが、
事情でHTMLは<main>内にトリガーボタン、外に非表示要素_cardなどを置くことになっています。
お知恵をお貸しください。
どうぞよろしくお願いします。
回答1件
あなたの回答
tips
プレビュー