近日,在动态生成的元素中,给子元素a标签添加事件的时候,发现.click();与on(‘click’,function(){});都不能成功的绑定上事件,之前的live()方法已经再官方文档中不予推荐使用。
所以为了解决这个问题,浏览网页,API等后获取的有价值的信息如下:
动态绑定可以使用on()方法与delegate()方法来实现。
在jQuery1.10的API中,
on()方法的第一个属性是事件类型type,
第二个属性是选择器selector,
第三个属性是事件function;
delegate()方法的第一个属性是选择器selector,
第二个属性是事件类型type,
第三个属性是事件function;
<script type="text/javascript">
$(function(){
var div = "<div class='item'><a class='cancel'>X</a></div>";
$(".btn").click(function(){
$(this).before(div);
});
// $(document).delegate('.cancel','click',function(event) {
// $(this).parent('.item').remove();
// });
$(document).on('click','.cancel',function(event) {
$(this).parent('.item').remove();
});
});
</script>
``
<div class="container">
<div class='btn'>+</div>
</div>
“`