流れ
1、ダブルクリック 要素(テキストエリア)を3つ作成
2、テキストエリア右クリック メニュー表示
3、メニュー 要素の選択をクリック
4、すべてのテキストエリアの左にチェックボックスが表示される
解決したいこと
上記の4番につきまして、
1度押すとチェックボックスが表れて、
2度押すとチェックボックスが(削除)される様にしたい。
toggleボタンの様にしようと思いましたが、createelmentを使用している為にそれができません。
毎回押す度にチェックボックス等が作成されてしまいます。
なのでテキストエリア以外の要素を、毎回作成したものを削除する形になると思います(div, input type=checkbox, input type=textNumber)
何か良い方法がありましたら是非ご教示ください。
宜しくお願い致します。
ソースコード:
https://codepen.io/mio-rei/pen/BapzePg
一部抜粋;
JavaScript
1document.addEventListener('dblclick',(e)=>{ 2 e.preventDefault(); 3 if(!e.target.closest('.nodoubleclick')){ 4 const textArea = document.createElement('textarea'); 5 document.querySelector('body').appendChild(textArea); 6 7 8 document.querySelector('.elm').addEventListener('click',() => { 9 10 const diClass = document.createElement('div'); 11 diClass.classList.add('di-class'); 12 13 14 const textNumber = document.createElement('input'); 15 textNumber.setAttribute('type', 'number'); 16 textNumber.classList.add('text-number'); 17 18 const ipClass = document.createElement('input'); 19 ipClass.setAttribute('type','checkbox'); 20 ipClass.classList.add('ip-class'); 21 22 document.querySelector('body').appendChild(diClass); 23 diClass.style.backgroundColor = 'yellow'; 24 diClass.style.display = 'inline-block'; 25 diClass.appendChild(textNumber); 26 diClass.appendChild(ipClass); 27 diClass.appendChild(textArea); 28 textNumber.style.display = 'none'; 29 30 31 const qa = document.querySelectorAll('.ip-class'); 32 let sizeUp = document.getElementById('sizeup'); 33 let sizeNum = document.getElementById('sizenum'); 34 35 sizeUp.onclick = () => { 36 for (const test of qa) { 37 if(test.checked == true) { 38 sizeNum.value = Number(sizeNum.value) + 1; 39 test.nextElementSibling.style.fontSize = sizeNum.value + 'px'; 40 } 41 } 42 } 43 });
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。