こんばんは。
いつもありがとうございます。
また、行き詰まりましたので、質問させて下さい。
JavaScriptで、clickイベントで発火させるつもりでコードを書いたのですが、
画面を読込した際に、勝手にイベントが発火してしまいます。
色々調べたりしましたが、原因がわかりませんでした。
実現したい仕様は以下の通りです。
①Startをクリック
②テキストの4文字目である1を取得(戻り値として返す)
③Nextをクリック
※この時、ディスプレイに何か入力がある場合とない場合で処理を分けてます。
④②の戻り値を連想配列(オブジェクト)のキーの一部となるように渡して、
連想配列(オブジェクト)を生成
コンソールログを確認すると、連想配列(オブジェクト)の生成はできているようですが、
ロード完了後に勝手に発火し、生成されてしまいます。
稚拙なコードで、見づらい箇所等多いかと思いますが、
解決策をご教示頂ければ幸いです。よろしくお願い申し上げます。
html
1 <div class="containar"> 2 <div class="textarea" > 3 <div class="displayarea" id="input-display"></div> 4 </div> 5 <div class="input"> 6 <div id="input-no1">1</div> 7 <div id="input-no2">2</div> 8 <div id="input-no3">3</div> 9 <div id="input-no4">4</div> 10 <div id="input-reset">Reset</div> 11 <div id="input-no5">5</div> 12 <div id="input-no6">6</div> 13 <div id="input-no7">7</div> 14 <div id="input-no8">8</div> 15 <div id="input-start">Start</div> 16 <div id="input-no9">9</div> 17 <div id="input-no0">0</div> 18 <div id="input-no00">00</div> 19 <div id="input-minus">―</div> 20 <div id="input-next">Next</div> 21 </div> 22 </div> 23 <div class="ul" id="input-choice"> 24 <div id="navi-no1">No.1</div> 25 <div id="navi-no2">No.2</div> 26 <div id="navi-no3">No.3</div> 27 <div id="navi-no4">No.4</div> 28 <div id="navi-no5">No.5</div> 29 <div id="navi-no6">Final</div> 30 </div> 31
javascript
1function userStart(){ 2 let inputNow = document.getElementById('navi-no1'); 3 inputNow.style.color = '#14cc80'; 4 return inputNow.textContent.substring(3,4); 5} 6 7let inputStart = document.getElementById('input-start'); 8inputStart.addEventListener('click',userStart,); 9 10function userNext(a){ 11 let inputdisplay = document.getElementById('input-display'); 12 if(inputdisplay.textContent !== ''){ 13 let no = 'No.'+a; 14 console.log(no); 15 userInputList[no] = inputdisplay.textContent; 16 console.log(userInputList); 17 inputdisplay.textContent = ''; 18 }else { 19 let no = 'No.'+a; 20 console.log(no); 21 userInputList[no] = 'Next'; 22 console.log(userInputList); 23 inputdisplay.textContent = ''; 24 } 25} 26 27let inputNext = document.getElementById('input-next'); 28inputNext.addEventListener('click',userNext(userStart())); 29
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/06 13:18