javascript
1document.addEventListener('DOMContentLoaded',function(){ 2 //指定された要素elemがクリックされた回数をカウントするCounterクラス 3 var Counter = function(elem) { 4 this.count = 0; 5 this.elem = elem; 6 elem.addEventListener('click',() => { 7 this.count++; 8 this.show(); 9 10 11 },false); 12 }; 13 14 Counter.prototype.show = function() { 15 console.log(this.elem.id + 'は' + this.count + '回クリックされました。'); 16 } 17 // <button>要素btnにカウンターをひも付け 18 var c = new Counter(document.getElementById('btn')); 19 20 21},false); 22
上記コードに関しまして、お聞きしたいことがあるのですが、「var c = new Counter(document.getElementById('btn'));」ここの部分において、idタグのbtnをCounterオブジェクトへ渡していると思うのですが、クリックイベントが発生した時の処理コード「elem.addEventListener」関数はインスタンス化する前に記述されています。考えすぎなのかもしれないのですが、今回ご質問させて頂いたように、コードの実行順序としましては、「btn」要素を取得する前にクリックイベントの処理コードが記載されていた場合だと、どの要素に対してのクリックイベントか認識できないのではないかと思ったんですよね。
どなたか、上記コードの実行順序などの点に関しまして、ご解説頂けましたら幸いです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/20 10:55
2018/09/20 11:37
2018/09/20 11:49