分类目录归档:前端

jQuery 1.9以上 on 无效的解决办法

jquery 1.9以上无法使用live,所有live功能合并到on中

$(selector).on(event,childSelector,data,function,map)

今天写代码的时候遇到一个奇怪的问题,append新元素到对象以后,新元素无法注册事件。

<ul>
<li><a class="btn btn-default"><i class="icon icon-add"></i> 复制</a></li>
</ul>
<script>
$(document).ready(function(){
$('.btn').on('click',function(){
ul= $(this).parents('ul');
ahref = $(this).parents('li').clone();
ul.append(ahref);
});
});
</script>

原因就在于是复制后的btn动态加载的元素,而使用上面的方法不能绑定动态加载元素的事件。修改后可以使用:

<script>
$(document).ready(function(){
$(document).on('click','.btn',function(){
ul= $(this).parents('ul');
ahref = $(this).parents('li').clone();
ul.append(ahref);
});
});
</script>