次のHTMLがある場合:
<html>
<div id="main_content">
<button>click me</button>
<script src="main.js" ></script>
</div>
</html>
そしてmain.js:
$('#main_content').on('click', 'button', function() {
console.log('you clicked');
});
ページ全体を読み込む場合、ボタンをクリックすると、コンソールメッセージが1つだけ登録されます。ただし、その後AJAXリクエストを介してコンテンツを再ロードmain_content's
すると、ボタンをクリックするたびに2つのコンソールメッセージが表示されます。後続のAJAXロードごとに3,4,5...メッセージが表示されますが、ページ全体をリロードする場合は常に1つです。
誰かがこの振る舞いを説明し、可能な解決策を提案するかもしれませんか?