我希望 jQuery 对加载页面时不存在的 Div进行操作;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