jquery 绑定动态元素

以一个小例子来简单说明下情况

1
2
3
4
5
6
7
8
 <script src="jquery-1.11.0.min.js"></script>
<input type="button" value="点击我" id="k" />
 
<script>
$('#k').click(function() {
    alert("kkkkk");
})
</script>

如果直接在页面上这么写,可以弹出"kkkkk"。然而当input元素是ajax动态加载进来并输出到页面的,这时弹出窗就失效了,相当于click事件没有被绑定到id为k的元素上。

这时script里可以这样写:

1
2
3
$(document).on('click','#k',function() {
    alert("kkkkk");
})

一般使用live()或者delegate()替换on()也能达到预期效果。但注意我举例的时候使用的是jquery-1.11.0版本,从 jquery1.9版本开始就去除掉live(),听说是性能问题。所以高版本的jquery可以用delegate()和on()。

posted @ 2015-12-18 14:09  兵小志大  阅读(154)  评论(0编辑  收藏  举报