环境:Jquery1.10
任务:使用ajax异步更新页面信息
现象:更新后的html页面上的js失效
问题:使用ajax更新的元素不能绑定事件
相关代码:

$('#a').click(function(){alert('这个事件不能绑定到新html的$(#a)');});$('#search').click(function(){$.ajax({data:$('#conditions').serialize(),async:false,type:"POST",dataType:'html',error:function(request){alert("请求数据时出错,请检查网络连接。");},success:function(data){$('#ajaxform').html($(data).find('#ajaxform').html());}}});});

解决方案:
1、刚开始,我认为新更新的元素没有绑定事件,尝试各种方法来绑定,但是都没有用,于是使用比较笨的一个方案,
将所有需要的js在success中重新绑定。
代码:

success:function(data){$('#ajaxform').html($(data).find('#ajaxform').html());$('#a').click(function(){alert('这是一个愚蠢的行为');});}

2、不能在更新后重新绑定,就在更新前绑定,使用on()来绑定将来的元素。
代码:

$(document).on('click','#a',function(){alert('将事件绑定到未来的元素#a上');});$('#search').click(function(){$.ajax({...});});

参考链接:http://www.cnblogs.com/leejersey/p/3545372.html