いつもお世話になっております。
動的に追加した要素にaddEventListnerを設定する方法がわからないのです。
調べてもJqueryでの方法は多く出てくるのですが、生のJavascriptでは出てこないので質問させていただきました。
試しにコードを作成してみたのですが、動的に生成された要素elm_2が存在しないためaddEventListner propertyがNullですと返ってくるのかと推察しました。
jqueryの$(document).on('click','hoge',function)のように動的に生成された要素にイベントを設定したいということになります。
よろしくお願いいたします。
HTML
1<body> 2 3<button id="btn_1">btn</button> 4 5 <script type="text/javascript"> 6 function adding() { 7 var elm_add = document.createElement('button'); 8 elm_add.id = "hoge"; 9 elm_add.textContent='btn added'; 10 var objBody = document.getElementsByTagName("body").item(0); 11 objBody.appendChild(elm_add); 12 } 13 var elm = document.getElementById("btn_1"); 14 elm.addEventListener("click", adding, false); 15 16 </script> 17 18 <script type="text/javascript"> 19 20 function warnings (){ 21 alert('it works! congraturations!!') 22 } 23 24 25 var elm_2 = document.getElementById("hoge"); 26 elm_2.addEventListener("click", warnings, false); 27 //Uncaught TypeError: Cannot read property 'addEventListener' of null 28 </script> 29</body>
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/10/15 13:31
2017/10/15 13:39
2017/10/15 13:52
2017/10/15 14:14
2017/10/15 14:28
2017/10/15 14:45
2017/10/15 15:59