1. 前言
由于项目需要,需要load一个页面并保持ajax返回的div能响应其页面内的JS的click事件。这个不是解决用jquery load加载页面到div时,不执行页面js的问题 这类问题,因为并无这个问题存在(jquery版本:1.10.2.js)。
2. 本质原因
假定页面内有$(.btn1).click(function(){})事件,你手动复制一个包含class为btn1的div到页面(ajax返回后加入的div),然后会发现你点击那个div,并不会被响应,如果你在console执行$(.btn1)确实有包括新添加的div,这个问题就在于当前的div没有被绑定到那个事件中。
标题的问题,本质就是上面描述的问题。
3.解决方法
之前的代码
$(document).ready(function(){
$('[id^="modifySettings_"]').bind("click",function(){
//some code
}
}
修改后的代码
//此函数变量得放在ready方法外面,否则也不能被响应
var registerClickCheckbox = function(){
$('[id^="modifySettings_"]').bind("click",function(){
//some code
}
$(document).ready(function(){
//new add