ページがロードされたときに存在しない Div でjQuery が動作するようにしたい。div は、クライアントのアクションに続いてオンザフライで作成されます (つまり、ページがロードされた後)。
以下は、ポイントを説明するための非常に単純なコードです。
HTML コード
<div id="test">
<div id="ExistsWhenDocIsLoaded"> Click here </div>
</div>
jQuery コード
<script>
$("#ExistsWhenDocIsLoaded").on('click',function(){
var s = '<div id="DivCreatedOnTheFly">New Stuff</div>' ;
$("#ExistsWhenDocIsLoaded").append(s);
// Code below works fine as expected,
// but is nested and is hard to read / debug
// $("#DivCreatedOnTheFly").on('click',
// function(){alert("Click On New Stuff");});
});
// The code below fails,
// it operate on $("#DivCreatedOnTheFly"),
// that doesn't exist when the page is loaded
$("#DivCreatedOnTheFly").on('click',function(event){alert("Click On New Stuff");});
</script>
ユーザーが「ここをクリック」をクリックすると、新しい Div が追加されます。ユーザーが新しい Div をクリックすると、アラート メッセージが表示されます。
警告メッセージがコード内にネストされている$("#ExistsWhenDocIsLoaded")
場合、期待どおりに機能しますが、読み取りとデバッグが難しくなります。
アラート メッセージが に関連するコードで記述されている場合、コードは最初に解釈されたときに返さ$("#DivCreatedOnTheFly")
れるため、トリガーされることはありません。$("#DivCreatedOnTheFly")
NULL