前提・実現したいこと
お世話になります。コーディング勉強中の初心者です。
予約システムを作成中です。
テーブルでカレンダーを作成し、日付をクリックすると
ポップアップで時間が表示される。時間を選んで送信する。という機能を作ろうとしています。
発生している問題・エラーメッセージ
画像ですと、カレンダーの外部の「3」をクリックすると、時間のポップアップが表示されるようになっています。 まったく同じものを、カレンダーの内部の「3」に付けたいのですが、クリックしても反応がありません。
該当のソースコード
html
1付けたい機能 2<div class="dropdown"> 3 <button class="dropdown__btn" id="dropdown__btn">3</button> 4 <div class="dropdown__body"> 5 <ul class="dropdown__list"> 6 <li class="dropdown__item"><a class="dropdown__item-link">8:00</a></li> 7 <li class="dropdown__item"><a class="dropdown__item-link">10:00</a></li> 8 <li class="dropdown__item"><a class="dropdown__item-link">12:00</a></li> 9 </ul> 10 </div> 11</div> 12 13 14カレンダーのtd内に入れると反応しない 15<td> 16<div class="vmenu_off"> 17 <div class="vmenuitem" onclick="doToggleClassName(getParentObj(this),'vmenu_on','vmenu_off')">3</div> 18 <div class="dropdown"> 19 <button class="dropdown__btn" id="dropdown__btn"></button> 20 <div class="dropdown__body"> 21 <ul class="dropdown__list"> 22 <li class="dropdown__item"><a class="dropdown__item-link">8:00</a></li> 23 <li class="dropdown__item"><a class="dropdown__item-link">10:00</a></li> 24 <li class="dropdown__item"><a class="dropdown__item-link">12:00</a></li> 25 </ul> 26 </div> 27</div> 28</div> 29</td> 30 31
css
1付けたい機能 2.dropdown { 3 margin: 0 0 0 auto; 4 position: relative; 5} 6.dropdown__btn { 7 display: block; 8 width: 1.5em; 9 padding: 0.2em; 10 background: none; 11 border: 0; 12} 13.dropdown__btn.is-open::after { 14 content: ""; 15 width: 100%; 16 height: 100%; 17 cursor: default; 18 position: fixed; 19 top: 0; 20 left: 0; 21 z-index: 4; 22} 23.dropdown__btn.is-open + .dropdown__body { 24 display: block; 25 z-index: 5; 26} 27.dropdown__body { 28 display: none; 29 width: 250px; 30 background: #fff; 31 box-shadow: 0 2px 6px 2px rgba(60,64,67,0.149), 0 1px 2px 0 rgba(60,64,67,0.302); 32 border-radius: 4px; 33 overflow: hidden; 34 position: absolute; 35 top: 32px; 36 left: 0; 37} 38.dropdown__list { 39 margin: 0; 40 padding: 0; 41} 42.dropdown__item { 43 display: block; 44} 45.dropdown__item-link { 46 display: block; 47 padding: 1em 1.2em; 48 font-size: 0.95em; 49 text-decoration: none; 50 color: #444; 51} 52.dropdown__item-link:hover { 53 background: #CCFFFB; 54} 55
js
1(function () { 2 document.addEventListener('DOMContentLoaded', function() { 3 const btn = document.getElementById('dropdown__btn'); 4 if(btn) { 5 btn.addEventListener('click', function(){ 6 this.classList.toggle('is-open'); 7 }); 8 } 9 }); 10}());
補足情報(FW/ツールのバージョンなど)
カレンダー参考
https://nyanblog2222.com/demo/calender1/
ドロップダウンメニュー参考
https://pixelog.net/post/rb8orj/