Jqueryのタイミング

Ajaxでロードしたhtmlがjqueryに反応しない。

追加した要素はその前から設定しいているjqueryには反応しない。
$(‘li’).click(function(){
do something
}
$(‘li’).on(‘click’, function() {
do something
}
どちらもダメ。
最初から存在している要素に対して設定しているので、追加された要素には反映されない。

対応策
onを使って先祖要素に設定して、第二引数に「反映される要素」を置く。
$(‘ul’).on(‘click’, ‘li’, function() {
do something
});
$(document).on(‘click’, ‘div’, function() {
do something
});
これで監視している状態になって、第二引数の要素が追加されても、それに反映される。

元ネタ 感謝!

コメント