
実現したいこと
disabled などで無効にして押せないボタンではなく、
仕様は変化せず、一度目以降は押しても何も発動しないボタンが作りたいです。
ボタンを押す
↓
BOXが出現する(この時点でボタンを押しても何も起きない)
↓
BOXをクリックするとアラートが出る
↓
アラートをOKするとBOXは削除され、最初の画面に戻る
↓
またボタンを押すとBOXが出現、、、という繰り返しができるプログラム
appendChildを使用しての追加、削除を目的とした内容になってます。
発生している問題・エラーメッセージ
ボタンが再度押せない
エラーは出ていません
該当のソースコード
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>lesson07 イベント付与</title> <link rel="stylesheet" type="text/css" href="base.css"> </head> <body> <div id="wrapper"> <button onclick="boxVisible()" id="button">ボックス表示</button> <div id="box-area"> <!-- ここにボックスを追加する --> </div> </div><!-- wrapper --></body> </html><script> const button=document.querySelector('#button'); function boxVisible(){ button.onclick = () =>{ return false; }; let boxArea=document.querySelector('#box-area'); let box=document.createElement('p'); boxArea.appendChild(box); box.classList.add("box"); box.addEventListener('click',()=>{ alert('生成したボックスをクリックしました。'); boxArea.removeChild(box); }); }; </script>
ソースコード Javascript ### 試したこと 今のコードだとアラートをOKした後にボタンを押すと押せないままなのですが、 button.onclick = () =>{return false; };の解除方法となるとキャンセルのキャンセルをする??ということになってしまうので addEventListenerで、preventdefaultを使用したのですが、うまく発動せず、永遠にボタンが押せてBOXが押した分だけ出てしまいます。 ### 補足情報(FW/ツールのバージョンなど) CSSでは特別なことはしていません html { } body { font-family:'ヒラギノ角ゴ Pro W3','Hiragino Kaku Gothic Pro','メイリオ',Meiryo,'MS Pゴシック',sans-serif; } * { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; -o-box-sizing: border-box; -ms-box-sizing: border-box; box-sizing: border-box; } .box { width: 320px; height: 180px; background-color: #fdd; }

タイトルと質問の内容が食い違ってません?
タイトル「一度押したボタンを処理が全て終わるまでは押せない状態にしたい」
質問の内容「disabled などで無効にして押せないボタンではなく、仕様は変化せず、一度目以降は押しても何も発動しないボタンが作りたい」
どっち?

回答2件
あなたの回答
tips
プレビュー