onメソッドは、指定したイベントを要素にバインドします。
on
記法
$(selector).on(event, childSelector, data, function () {
処理
});
============================
selector : 対象の要素を指定するセレクター
event : バインドするイベントの種類
childSelector : 指定された子要素に対してイベントをデリゲート(省略可能)
data : イベントハンドラに渡される追加データ(省略可能)
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>childSelectorの使用例</title>
<link rel="stylesheet" href="./main.css" />
</head>
<body>
<div id="button_container">
<button class="child-button">ボタン1</button>
<button class="child-button">ボタン2</button>
</div>
<button id="add_button">新しいボタンを追加</button>
<div id="message" class="hidden">ボタンがクリックされました!</div>
<!-- CDN取得 -->
<script src="CDNのURL"></script>
<script src="./main.js"></script>
</body>
</html>
// ページの読み込みが完了
$(function () {
// 親要素にクリックイベントをバインドし、子要素のボタンに対してイベントをデリゲートする
$("#button_container").on("click", ".child-button", function () {
$("#message")
.removeClass("hidden")
.text($(this).text() + "がクリックされました!");
});
// 新しいボタンを追加する
let buttonCount = 2; // 初期ボタン数
const maxButtons = 5; // 最大ボタン数
$("#add_button").on("click", function () {
if (buttonCount < maxButtons) {
$("#button_container").append(
'<button class="child-button">追加されたボタン' +
(buttonCount + 1) +
"</button>"
);
buttonCount++;
} else {
alert("これ以上ボタンを追加できません。");
}
});
});
.hidden {
display: none;
}
出力結果
ボタンがクリックされました!