検証コード
<html> <head> <meta charset="utf8"> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> <script type="text/javascript"> $(function(){ var log = function(){ console.log(this.innerHTML); }; // 描画してからイベントバインド var $target1 = $('<a></a>').html("Target1"); $("#container1").append($target1); $target1.on('click', log); // 描画する前(メモリ上にjQueryオブジェクトがある状態)で // イベントバインドしたのちに描画 var $target2 = $('<a></a>').html("Target2"); $target2.on('click', log); $("#container2").append($target2); // 描画する前に... var $target3 = $('<a></a>').html("Target3").attr({id:"test3"}); // セレクタで探してイベントバインドしてみる $("a#test3").on('click', log); $("#container3").append($target3); // 描画してからセレクタで探す(当然いける) var $target4 = $('<a></a>').html("Target4").attr({id:"test4"}); $("#container4").append($target4); $("a#test4").on('click', log); }); </script> </head> <body> <div id="container1"></div> <div id="container2"></div> <div id="container3"></div> <div id="container4"></div> </body> </html>
結果
だいたい予想通り
ちなみに
で、
// こういうことは出来るのかと気になっちゃうよね var $target5 = $('<div><a id="unko">うんこ</a></div>'); $target5.find('a#unko').on('click', log); $("#container1").append($target5);
いけた
( ゚∀゚)o彡° うんこ!