脚本在ajax请求后不再工作
Scripts no longer work after ajax request
页面上有一个表,我通过ajax更新它。有一些脚本使用表的内容。例如,其中一个使用表上的"Check all / Uncheck all
"复选框来check/uncheck
该表上的其他复选框。
例如,下面是*.js文件中的部分javascript代码:
$(document).ready(function() {
$("#check-all").change(function(){
$(".my_table input[type=checkbox]").prop('checked', this.checked);
});
});
在执行ajax之前,请求一切工作正常。注意,ajax不返回任何javascript代码,所有javascript代码都位于外部js文件中。
因为您使用的是添加在文档上的事件处理程序。准备好了,之后添加的任何东西都不会有事件。
在jQuery 1.7之后,你可以使用on.$(document).on("change", "#check-all", function(){ ... });
另一种选择是保留现有的内容,只需在更新页面内容时调用代码。
function addChangeEvent() {
$("#check-all").change(function(){
$(".my_table input[type=checkbox]").prop('checked', this.checked);
});
}
$(document).ready(function() {
addChangeEvent();
});
和Ajax调用
$("#foo").load("xxx.html", function(){ addChangeEvent()l });
事件附加到旧页面内容。如果您替换了该内容,则事件将随之更改。
相反,尝试使用$("#check-all").on("change",function() {...});
,我不是jQuery专家,但我相信,即使元素改变,也会坚持事件处理程序。
相关文章:
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 当我更改innerHtml时,引导选项卡事件不再工作
- 天气应用 API 不再工作
- AngularJS Dropdown在使用指令后不再工作
- 虚拟键盘在更新到 Chrome v50 后不再工作
- $(这个)没有't在onClick事件中不再工作
- 升级至Knockout 3.0.0,Templates/Custom Binding Handlers不再工作
- 自定义绑定在KnockoutJS 3.0中不再工作
- 为什么不是'我的jQuery不再工作了
- 为什么 ngClick 在$compile后不再工作
- AngularJs 路由不再工作.地址栏更改,但视图不会更改
- yam.platform.setAuthToken在IE 8和IE 9中不再工作
- 节点.js版本已更改,脚本不再工作
- 是 ngAnimate 不再工作了
- .click() 不再工作 jquery.
- JS点击功能不再工作以更改链接颜色
- 谷歌地图API不再工作
- 事件处理程序在 html 重新呈现后不再工作
- Javascript检测不再工作
- Rails:Paperclip gem在切换计算机后不再工作