文書の過去の版を表示しています。
以下の例では、ボタンを押すことで追加された li でも on lick 時のイベントを発火できるようにしています。
<button class="btn-add">add</button>
<ul>
<li>test</li>
</ul>
<script>
$(function() {
let num = 1;
$('.btn-add').on('click', function(){
$('ul').append('<li>add ' + num + '</li>');
num ++;
});
$('ul').on('click', 'li', function(){
alert($(this).text());
});
</script>
簡単に解説すると、li の親である ul に対して、click 時のイベント処理を設定しているので、ul 内に後から追加された要素についても click イベントを取得することができます。
<button type="button" class="btn" data-id="1">
<button type="button" class="btn" data-id="2">
<button type="button" class="btn" data-id="3">
<script type="text/javascript">
$(function() {
$('.btn').on('click', function(){
console.log($(this).data('id'));
});
});
</script>
入力内容が変更されたらイベント発火。
入力フォームからフォーカスが外れた段階でイベントが発火する。
入力があったらリアルタイムにイベント発火させたい場合は、次で紹介する input イベントを利用する。
<input type="file" class="file" name="file_1" data-num="1">
<input type="file" class="file" name="file_2" data-num="2">
<input type="file" class="file" name="file_3" data-num="3">
<script type="text/javascript">
$(function() {
$('.file').on('change', function(){
console.log($(this).data('num'));
console.log($(this).val());
});
});
</script>
入力があったらイベント発火。
keyup やコピペでもイベントが発火するため、入力があったらリアルタイムに処理できる。
<input type="text" name="search">
$(function() {
$(document).on('input', 'input[name=search]', function(){
console.log($(this).val())
})
})
コメント