以一个小例子来简单说明下情况
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()。