AFAICT这应该有效,但它没有。使用 jQuery 1.9.0,我有以下内容:
<html>
<head>
<script type="text/javascript" src="js/libs/jquery-1.9.0/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("button").click(function() {
$("#area").html("<p>click me</p>");
});
$("p").on("click", function() {
alert($(this).text());
});
});
</script>
</head>
<body>
<p>some text</p>
<button>Create me</button>
<div id="area"></div>
</body>
</html>
为什么单击“某些文本”会带来警报,但单击生成的“单击我”却不会?我认为 .on() 的全部意义在于在动态生成的代码上启用事件处理程序。根据Click 事件在动态生成的元素上不起作用,这应该起作用,但它不起作用。见http://jsfiddle.net/ymUYy/1/