想知道为什么下面的例子不起作用?
<a id="load_list" href="#">Load the list</a>
<ul></ul>
<script type="text/javascript">
$(document).ready(function() {
$('#load_list').click(function() {
$('ul').append('<li><a href="#">Click here</a></li>');
return false;
});
$('ul li a').click(function() {
alert('Thank you for clicking');
return false;
});
});
</script>
解决方法
因为当您定义点击处理程序时,您要附加的元素不存在,所以它们将被动态创建。要解决这个问题,可以使用jQuery中的
delegate()方法。
$('ul').delegate('a','click',function() {
// your code here ...
});
在线示例:http://jsfiddle.net/J5QJ9/