動的生成した要素に対してjQueryでイベントをつけるとき
jQuery+AjaxでDBから持ってきたデータを動的生成したのはいいけど、新たに生成した要素に対してイベント反応しない…
となっていたので解決メモ
<div> <button class="btn1">最初からあるボタン</button> </div>
$(document).ready(function(){ $('div').append(’<button class="btn2">新たなボタン</button>’); }); $('.btn1').on('click', function(){ alert('最初からあるボタン'); }); $('.btn2').on('click', function(){ alert('新たなボタン'); });
div
の中にボタンを動的生成
すると.btn1
のイベントは効くのに動的生成した.btn2
のイベントはうんともすんとも言わない
なので.btn2
のクリックイベントを
$(document).ready(function(){ $('div').append(’<button class="btn2">新たなボタン</button>’); }); $('.btn1').on('click', function(){ alert('最初からあるボタン'); }); $(document).on("click", ".btn2", function(){ alert('新たなボタン'); });
こう変えると反応するようになる