お疲れ様です。
お手数をおかけいたしますが宜しければご教授いただければと思います。
また、質問文の中で何かありましたら直ぐに返答いたします。
[疑問点]
コマンド['攻撃', '魔法', '道具', 'にげる']の一つを押したときに他のコマンドのイベントを無効にしたいと思っております。
その際、[やってみたこと]でも記載するのですが、特定のボタンを押したときにそれ以外の要素を一つ一つとって来てpointerEventで設定をするということも検討したのですが文が長くなってしまい可読性?が悪くなってしまうので、特定のボタンを押されたときにそれ以外の要素をまとめて設定できる処理がないか教えていただければと思います。
[やってみたこと]
例えば、攻撃を押されたときにそれ以外の要素を一つ一つ取って来てpointerEventで設定するということを検討したのですが文が長くなってしまう
javascript
1 User.prototype.clickCommand = function( checkCommand ) { 2 console.log( checkCommand ); 3 if ( checkCommand == 1 ) { 4 console.log('攻撃!'); 5 document.querySelector('.magic').style.pointerEvent = 'none'; 6 } else if ( checkCommand == 2 ) { 7 console.log('魔法!'); 8 } else if ( checkCommand == 3 ) { 9 console.log('道具'); 10 } else if ( checkCommand == 4 ) { 11 console.log('逃げる!'); 12 } 13 } 14
html
1<div class="command-container-right"> 2 <p class="command attack" data-index-id="1">こうげき</p> 3 <p class="command magic" data-index-id="2">まほう</p> 4 <p class="command tool" data-index-id="3">どうぐ</p> 5 <p class="command run" data-index-id="4">にげる</p> 6 </div>
javascript
1 2 User.prototype.clickCommand = function( checkCommand ) { 3 console.log( checkCommand ); 4 //ここのif文の処理で簡潔にかければと思います。 5 if ( checkCommand == 1 ) { 6 console.log('攻撃!'); 7 } else if ( checkCommand == 2 ) { 8 console.log('魔法!'); 9 } else if ( checkCommand == 3 ) { 10 console.log('道具'); 11 } else if ( checkCommand == 4 ) { 12 console.log('逃げる!'); 13 } 14 } 15 16TapBattleObj.command.forEach( index => { 17 index.addEventListener('click', ()=> { 18 if ( index.dataset.indexId == 1 ) { 19 let checkCommand = index.dataset.indexId; 20 console.log( '攻撃!'); 21 UserA.clickCommand( checkCommand ); 22 } else if ( index.dataset.indexId == 2 ) { 23 let checkCommand = index.dataset.indexId; 24 console.log(' 魔法 '); 25 UserA.clickCommand( checkCommand ); 26 } else if ( index.dataset.indexId == 3 ) { 27 let checkCommand = index.dataset.indexId; 28 console.log( '道具 '); 29 UserA.clickCommand( checkCommand ); 30 } else if ( index.dataset.indexId == 4 ) { 31 let checkCommand = index.dataset.indexId; 32 console.log( 'にげる'); 33 UserA.clickCommand( checkCommand ); 34 } 35 },false); 36 });
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/27 05:46
2020/04/27 06:59