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
registerClickCheckbox(); $.ajax({
type: "POST",
url: "/MyProject/settingl?mode=addItem
data: $("#addNewItem").serialize(),
dataType: "json",
success: function (data) {
$('#div0').after('<div id="modifySettings_'+data.id+'" value="'+data.value+'">new item</div>');
//重新绑定click操作
registerClickCheckbox();
},
error: function(data) {
alert("error:"+data.responseText);
}
}); }

4. 其它(可跳过,纯记录)

如果load页面里面有两个tab,而且两个tab共用部分的代码,另一个页面要加载这页面的两个tab时,对$.tab方法使用可以稍微变通处理,不需要两个tab都加载子页面,只需加载一个,然后另一个用js来控制达到功能和预期一样即可。

var tabsData = [{"id" : "tabs_basic"},
   {"id" : "tabs_2"},
   {"id" : "tabs_3"},
   {"id" : "tabs_loadsub1"},
    {"id" : "tabs_loadsub2"}]; function hideAllTabs(){
for(var i=1; i<10;i++){
var evalStr = "$('[role=\"tabpane'+i+'\"]').hide()";
eval(evalStr);
}
$('[role="presentation"]').removeClass('active'); } function showTabs(tabsId) {
hideAllTabs();
if(tabsId != 'tabs_sub1'){
$("#"+tabsId).show();
$("a[href='#"+tabsId+"']").tab('show');
}else{
$('#tabs_sub2').show();
$('[href="#tabs_sub1"]').parent().addClass('active');
} } function tabsHandler(event) {
var data = event.data;
showTabs(data.id); timeOut = setTimeout(function(){
$.ajax({
type: 'POST',
data: {
mode:'saveSettingTabIndex',
tabId:data.id
},
url : './siconfig',
success : function(msg) {
}
});
}, 100);
return false;
} $(document).ready(function() { $(tabsData).each(function(){
$("a[href='#"+this.id+"']").bind('click',{id : this.id},tabsHandler);
}); var tabId = '<%= Utils.getSettingTabIndex() %>';
for(var index in tabsData){
if(tabsData[index].id==tabId)
showTabs(tabsData[index].id);
}
}

jquery load加载页面内ajax返回的div不能响应页面js的问题的解决方案的更多相关文章

  1. IE8中jQuery.load()加载页面不显示的原因

    一.jQuery.load() jQuery.load(url,[data],[callback])通过Ajax异步请求加载服务器中的数据,并把数据放到指定元素中. url :请求服务器的地址 dat ...

  2. 解决jQuery load()加载GB2312页面时出现乱码

    jquery的字符集是utf-8,load方法加载完GB2312编码静态页面后,出现中文乱码. 这是jQueryAJAX.html <!DOCTYPE html PUBLIC "-// ...

  3. jquery load 加载改造,只加载body

    背景: 项目中大量用到了jquery和easyui组件,原生load经常出现主页面异常,原因是组件被重复初始化.也考虑过用iframe,但是在实际项目中的效果,最终取消了iframe方案,也尝试了其他 ...

  4. Jquery load()加载GB2312页面时出现乱码的解决方法

    问题描述:jquery的字符集是utf-8,load方法加载完GB2312编码静态页面后,出现中文乱码. a.php <script language="javascript" ...

  5. ASP.NET MVC如何在页面加载完成后ajax异步刷新

    背景:之前已写过两篇有关Ajax的随笔,这一篇是单独针对在页面加载完成的Ajax操作.比如说打开学生列表页面,先加载页面,然后以Ajax的方式,从数据库中检索相应的学生信息,给浏览者更好的体验. 简单 ...

  6. jQuery+zTree加载树形结构菜单

    jQuery+zTree加载树形结构菜单 由于项目中需要设计树形菜单功能,经过一番捣腾之后,终于给弄出来了,所以便记下来,也算是学习zTree的一个总结吧. zTree的介绍: 1.zTree 是利用 ...

  7. jQuery自动加载更多程序

    1.1.1 摘要 现在,我们经常使用的微博.微信或其他应用都有异步加载功能,简而言之,就是我们在刷微博或微信时,移动到界面的顶端或低端后程序通过异步的方式进行加载数据,这种方式加快了数据的加载速度,由 ...

  8. jQuery懒加载插件jquery.lazyload.js使用说明实例

    jQuery懒加载插件jquery.lazyload.js使用说明实例很多网站都会用到‘图片懒加载’这种方式对网站进行优化,即延迟加载图片或符合某些条件才开始加载图片.懒加载原理:浏览器会自动对页面中 ...

  9. jQuery自动加载更多程序(转)

    jQuery自动加载更多程序   1.1.1 摘要 现在,我们经常使用的微博.微信或其他应用都有异步加载功能,简而言之,就是我们在刷微博或微信时,移动到界面的顶端或低端后程序通过异步的方式进行加载数据 ...

随机推荐

  1. 地址空间格局随机化ASLR

    Address space layout randomization(ASLR)是一种参与保护缓冲区溢出问题的一个计算机安全技术.是为了防止攻击者在内存中能够可靠地对跳转到特定利用函数.ASLR包括随 ...

  2. java常用的运算符

    Java 语言中常用的运算符可分为如下几种: Ø 算术运算符 Ø 赋值运算符 Ø 比较运算符 Ø 逻辑运算符 Ø 条件运算符

  3. LR和SVM的区别

    一.相同点 第一,LR和SVM都是分类算法(SVM也可以用与回归) 第二,如果不考虑核函数,LR和SVM都是线性分类算法,也就是说他们的分类决策面都是线性的. 这里要先说明一点,那就是LR也是可以用核 ...

  4. 安装完office后 在组件服务里DCOM配置中找不到

    这个主要是64位系统的问题,excel是32位的组件,所以在正常的系统组件服务里是看不到的 可以通过在运行里面输入 comexp.msc -32 来打开32位的组件服务,在里就能看到excel组件了

  5. JVM锁简介:偏向锁、轻量级锁和重量级锁

    转自:https://www.aimoon.site/blog/2018/05/21/biased-locking/ 比较复杂,简略见另一篇:https://www.cnblogs.com/twohe ...

  6. .Net进阶系列(11)-异步多线程(委托BeginInvoke)(被替换)

    一. BeginInvoke最后两个参数的含义 倒数第二个参数:指该线程执行完毕后的回调函数:倒数第一个参数:可以向回调函数中传递参数. 下面以一段代码说明: /// <summary> ...

  7. 【输入法】Rime-中州韵 基本设置 附:官方定制指南

    前言 不知不觉就到了年终了,距离上次更新博客已经有一个半月,这段时间天天在加班,也没作一下新的学习计划,趁着元旦放假,写一点好玩的东西,这次要记录的是一点关于Rime相关的东西,文章本身不会长,只是说 ...

  8. Bugly实现app全量更新

    转 http://blog.csdn.net/qq_33689414/article/details/54911895Bugly实现app全量更新 Bugly官网文档 一.参数配置 在app下的gra ...

  9. Linux 下安装 storm

    一:准备工作 (机器部署情况详见)这篇博客 3台安装supervisor,2台安装nimbus (1)安装jdk1.8 (2)安装zookeeper3.4.5 以上两部分安装可查看这篇博客 (3)下载 ...

  10. js对当前时间的相关操作

    链接:https://www.cnblogs.com/visi_zhangyang/p/3490122.html js中获得当前时间是年份和月份,形如:201208       //获取完整的日期 v ...