异步操作动态添加节点,导致在代码中给添加的节点全局绑定事件或者获取元素无效,上代码:
$(function () {
var IP = '...'; // 页面中的默认编号起始值 和 公用IP前缀
showData();
function showData() {
if ($('.content')) $('.content').remove();
$.ajax({
url:IP + '/get',
type:'get',
success:function (data) {
var newInfo = '';
if(!data) return alert('对不起,没有数据可供操作!');
newInfo +='<div class="btnBox">' +
'<a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="remove">删除</a>' +
'<a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="change">修改</a>' +
'</div>';
});$('body').append(newInfo);
},
error:function (err) {
alert(err);
}
});
}
}
//这是一段很明显的通过JQuery-ajax前后台交互并动态添加的代码;
//但是,如果你在该方法(showData())外面来给上述动态添加的a标签添加事件或者获取值的时候可能会出现无效的情况:
$('.remove').click(function(){
alert('这是删除按钮!');
});
//页面中则不会弹出(这是删除按钮!)的弹框;
那么,问题出在哪里呢?
事实上,ajax从后台获取数据再显示到我们的页面中的过程是异步的,也就是说当我们利用ajax从后台获取值得时候,在ajax之后的代码是一直往下执行着走的,而不会等着你ajax获取并创建节点完成后再往下继续执行,这便是异步请求的机制,对于这个问题我们怎么解决呢:
$(function () {
var IP = '...'; // 页面中的默认编号起始值 和 公用IP前缀
showData();
function showData() {
if ($('.content')) $('.content').remove();
$.ajax({
url:IP + '/get',
type:'get',
success:function (data) {
var newInfo = '';
if(!data) return alert('对不起,没有数据可供操作!');
newInfo +='<div class="btnBox">' +
'<a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="remove">删除</a>' +
'<a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="change">修改</a>' +
'</div>';
});$('body').append(newInfo);
// 当动态添加节点完成之后再给其中的按钮绑定事件
$('.remove').click(function(){
alert('这是删除按钮!');
});
},
error:function (err) {
alert(err);
}
});
}
}
将绑定事件的代码改到ajax内部,这样让动态添加完成之后再给其中的按钮绑定事件,就可以达到我们所需要的效果了,这便是ajax的异步机制
以上所述是小编给大家介绍的JQuery Ajax 异步操作之动态添加节点功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# jquery
# ajax
# 异步操作
# 动态添加节点
# jquery 添加节点的几种方法介绍
# JQuery给元素添加/删除节点比如select
# Jquery动态添加及删除页面节点元素示例代码
# jquery 删除节点 添加节点 找兄弟节点的简单实现
# JQuery给select添加/删除节点的实现代码
# jQuery循环遍历子节点并获取值的方法
# JQuery遍历DOM节点的方法
# JQuery中节点遍历方法实例
# Jquery遍历节点的方法小集
# Jquery节点遍历next与nextAll方法使用示例
# jQuery实现动态添加节点与遍历节点功能示例
# 这是
# 绑定
# 可供
# 小编
# 再给
# 在此
# 你在
# 这个问题
# 等着
# 给大家
# 弹出
# 这便是
# 就可
# 当我们
# 很明显
# 往下
# 所需要
# 所述
# 给我留言
# 出在
相关文章:
如何解决VPS建站LNMP环境配置常见问题?
如何通过多用户协作模板快速搭建高效企业网站?
如何快速选择适合个人网站的云服务器配置?
Python如何创建带属性的XML节点
如何确认建站备案号应放置的具体位置?
可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?
如何在阿里云ECS服务器部署织梦CMS网站?
如何通过虚拟主机快速搭建个人网站?
电商网站制作价格怎么算,网上拍卖流程以及规则?
建站之星备案流程有哪些注意事项?
常州企业网站制作公司,全国继续教育网怎么登录?
如何通过虚拟主机快速完成网站搭建?
Swift中switch语句区间和元组模式匹配
SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?
广州网站建站公司选择指南:建站流程与SEO优化关键词解析
建站之星下载版如何获取与安装?
外贸公司网站制作,外贸网站建设一般有哪些步骤?
如何快速搭建高效可靠的建站解决方案?
如何高效配置香港服务器实现快速建站?
建站之星如何助力企业快速打造五合一网站?
代刷网站制作软件,别人代刷火车票靠谱吗?
历史网站制作软件,华为如何找回被删除的网站?
如何在沈阳梯子盘古建站优化SEO排名与功能模块?
定制建站流程解析:需求评估与SEO优化功能开发指南
郑州企业网站制作公司,郑州招聘网站有哪些?
如何通过VPS搭建网站快速盈利?
建站之星如何修改网站生成路径?
如何通过万网虚拟主机快速搭建网站?
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
简单实现Android文件上传
如何在云指建站中生成FTP站点?
如何有效防御Web建站篡改攻击?
XML的“混合内容”是什么 怎么用DTD或XSD定义
如何用虚拟主机快速搭建网站?详细步骤解析
在线制作视频的网站有哪些,电脑如何制作视频短片?
重庆网站制作公司哪家好,重庆中考招生办官方网站?
定制建站是什么?如何实现个性化需求?
如何使用Golang安装API文档生成工具_快速生成接口文档
寿县云建站:智能SEO优化与多行业模板快速上线指南
建站之星如何通过成品分离优化网站效率?
深圳网站制作案例,网页的相关名词有哪些?
孙琪峥织梦建站教程如何优化数据库安全?
天津个人网站制作公司,天津网约车驾驶员从业资格证官网?
php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】
Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递
图册素材网站设计制作软件,图册的导出方式有几种?
如何通过可视化优化提升建站效果?
建站之星CMS建站配置指南:模板选择与SEO优化技巧
建站主机选哪家性价比最高?
建站之星后台密码遗忘如何找回?
*请认真填写需求信息,我们会在24小时内与您取得联系。