Ale*_*dre 1 javascript ruby ajax jquery sinatra
页面上有一个表格,我通过ajax更新.有些脚本使用表的内容.例如,其中一个使用Check all / Uncheck all表上的" "复选框到该表上check/uncheck的其他复选框.
当我执行ajax请求时,它返回几乎相同的表内容.至少,它绝对是正确的,不应该破坏脚本的功能.但是,之后没有任何脚本不再起作用.为什么?
例如,以下是*.js文件中javascript代码的一部分:
$(document).ready(function() {
$("#check-all").change(function(){
$(".my_table input[type=checkbox]").prop('checked', this.checked);
});
});
Run Code Online (Sandbox Code Playgroud)
在执行ajax之前,请求一切正常.请注意,ajax不会返回任何javascript代码,所有javascript代码都位于外部js文件中.
因为您正在使用在document.ready上添加的事件处理程序,并且在它之后添加的任何事件都没有事件.
在jQuery 1.7之后,你可以使用on.
$(document).on("change", "#check-all", function(){ ... });
Run Code Online (Sandbox Code Playgroud)
其他选项是保留您拥有的内容,只需在更新页面内容时调用代码即可.
function addChangeEvent() {
$("#check-all").change(function(){
$(".my_table input[type=checkbox]").prop('checked', this.checked);
});
}
$(document).ready(function() {
addChangeEvent();
});
Run Code Online (Sandbox Code Playgroud)
和你的Ajax调用
$("#foo").load("xxx.html", function(){ addChangeEvent()l });
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2821 次 |
| 最近记录: |