jquery 绑定动态元素

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

?

1

2

3

4

5

6

7

8

<scriptsrc="jquery-1.11.0.min.js"></script>

<inputtype="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()。