Ajax更新页面后控件失效,如何获取?
Ajax请求后渲染模板页替换页面内容:
$.get(url, {...}, function(particalPage, status) {
if (status = "success") {
$("#contentBox").html(particalPage);
}
});
模板页中表格的tbody中每行有复选框,tfoot中有复选框 ,应用了iCheck插件
//tbody>tr
<label class="check ">
<input type="checkbox" class="icheckbox" value="<% =item.id%>"/>
</label>
//tfoot
<label class="check">
<input type="checkbox" class="icheckbox" id="iCheckAll"/>
</label>
页面JavaScript 实现全选/全不选
$('#iCheckAll').on('ifChecked', function(event) {
$('input.icheckbox').iCheck('check');
});
$('#iCheckAll').on('ifUnchecked', function(event) {
$('input.icheckbox').iCheck('uncheck');
});
现在的情况是,Ajax更新后,iCheck样式失效,全选/全不选失效,使用jQuery获取Checkbox是否选中及value也没有作用,求破!!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
DOM元素替换了,事件都没有了,需要重新初始化icheck插件
楼上说的对,你将这个table初始化的部分编写成独立函数,在table修改后,从新调用一次,最好的方法是调用你所用的框架的函数来绑定函数,因为绑定事件是在页面加载的时候完成,但是你动态插入页面的时候却需要手动绑定事件,所以找到框架的相应函数,手动调用一次。否则你自己对table中的全部选中框手动添加事件,还有相应的数据处理等等!所以你最好别这样子写代码动态插入页面,除非你使用的框架的功能足够完善
遇到同样的坑了,同样是icheck插件,虽然时间有点久,这里直接上代码
原理就是动态加载的元素绑定事件无效,需要用到事件委托