Jquery-事件绑定未来元素
环境: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
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。