そういうときには、.live() メソッドを使います。
$(document).live('click', function(){ ... });
その書き方だとdocumentにイベントハンドラがついてしまいますし、live メソッドは1.7で非推奨、1.9で廃止となっていますから、質問者の書いたとおり on メソッドを使った方がいいです。
ぐだぐだな回答だったので、サンプルコードを書いてみました。
こちらが最初に表示されているページ。
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <script> $(function() { $("#button").click(function() { // id="dest" の内容を include.html で置き換える $("#dest").load("include.html", function (txt) { // include.html で追加されるはずの class="aaa" のクリックイベントを登録 $(document).on("click", "div.aaa", function() { alert(this.innerHTML) }) }) }) }) </script> <button id="button">go</button> <!-- include.html が差し込まれる領域 --> <div id="dest"></div>
こちらがボタンをクリックしたときに、読み込まれる include.html の内容。
<div class="aaa">1</div> <div class="aaa">2</div> <div class="aaa">3</div>
一応、動きます。