jQueryで動的に追加したタグやid、classにイベントを登録したい時

jQueryで動的に追加したタグやid、classにイベントを登録したい時

忘れそうなのでメモ。

jQueryのappendで追加したdivにclickイベント | OKWave

jQueryのappendで追加したdivにclickイベントは使用できるのでしょうか?
〜〜略〜〜
最初からあるdivでは正常に動作するので、appendで後付したからだと思います。
これをうまく行う方法はないでしょうか?

こんな質問(↑では解決していない)

$('.btn').click(function(){alert('oh!');});
$('#id').append('<a href="#" class="btn">ボタン</a>');

こんな感じだとうまくいかない。
ボタンというテキストにリンクが貼られて表示されてもクリックイベントが起こらない。

$().click() はHTMLで最初にDOMが構築されるときに書いていないとイベントに登録されない様子。

そんな時には、live() を使うといいようだ。

$('.btn').live('click', function(){alert('oh!');});
$('#id').append('<a href="#" class="btn">ボタン</a>');

なるほど。こりゃ便利だ。

参考:「午前様」の日記: [jQuery] live()が激しく便利な件について