JQuery Ajax 异步操作之动态添加节点功能


Posted in jQuery onMay 24, 2017

异步操作动态添加节点,导致在代码中给添加的节点全局绑定事件或者获取元素无效,上代码:

$(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 相关文章推荐
jQuery实现字体颜色渐变效果的方法
Mar 29 jQuery
jquery submit()不能提交表单的解决方法
Apr 24 jQuery
jQuery操作css样式
May 15 jQuery
利用jquery去掉时光轴头尾部线条的方法实例
Jun 16 jQuery
jQuery接受后台传递的List的实例详解
Aug 02 jQuery
原生js jquery ajax请求以及jsonp的调用方法
Aug 04 jQuery
解决IE7中使用jQuery动态操作name问题
Aug 28 jQuery
jquery使用iscorll实现上拉、下拉加载刷新
Oct 26 jQuery
jQuery实现文字超过1行、2行或规定的行数时自动加省略号的方法
Mar 28 jQuery
jQuery+datatables插件实现ajax加载数据与增删改查功能示例
Apr 17 jQuery
jQuery实现电梯导航模块
Dec 22 jQuery
jQuery实现增删改查
Dec 22 jQuery
使用jQuery.Pin垂直滚动时固定导航
May 24 #jQuery
jquery append与appendTo方法比较
May 24 #jQuery
jQuery日期范围选择器附源码下载
May 23 #jQuery
最常用的jQuery表单验证(简单)
May 23 #jQuery
jquery实现简单实用的轮播器
May 23 #jQuery
jquery实现图片轮播器
May 23 #jQuery
jQuery实现简单的滑动导航代码(移动端)
May 22 #jQuery
You might like
php 无限级分类学习参考之对ecshop无限级分类的解析 带详细注释
2010/03/23 PHP
php foreach 参数强制类型转换的问题
2010/12/10 PHP
PHP容易忘记的知识点分享
2013/04/30 PHP
javascript showModalDialog,open取得父窗口的方法
2010/03/10 Javascript
jQuery 第二课 操作包装集元素代码
2010/03/14 Javascript
将光标定位于输入框最右侧实现代码
2012/12/04 Javascript
深入浅出分析javaScript中this用法
2015/05/09 Javascript
JS学习之表格的排序简单实例
2016/05/16 Javascript
[原创]jQuery常用的4种加载方式分析
2016/07/25 Javascript
nodejs实例解析(输出hello world)
2017/01/03 NodeJs
JavaScript 函数的定义-调用、注意事项
2017/04/16 Javascript
如何用webpack4.0撸单页/多页脚手架 (jquery, react, vue, typescript)
2019/06/18 jQuery
vue 项目软键盘回车触发搜索事件
2020/09/09 Javascript
[48:18]DOTA2-DPC中国联赛 正赛 RNG vs Dynasty BO3 第二场 1月29日
2021/03/11 DOTA
Python中的赋值、浅拷贝、深拷贝介绍
2015/03/09 Python
使用PM2+nginx部署python项目的方法示例
2018/11/07 Python
Python简易版停车管理系统
2019/08/12 Python
使用OpenCV实现仿射变换—平移功能
2019/08/29 Python
pycharm激活码有效到2020年11月底
2020/09/18 Python
tensorflow指定CPU与GPU运算的方法实现
2020/04/21 Python
Python利用命名空间解析XML文档
2020/08/10 Python
使用CSS3的背景渐变Text Gradient 创建文字颜色渐变
2014/08/19 HTML / CSS
英国排名第一的冲浪店:Ann’s Cottage
2020/06/21 全球购物
Hotels.com韩国:海外国内旅行所需的酒店和住宿预订网站
2020/05/08 全球购物
什么是lambda函数
2013/09/17 面试题
应届毕业生个人求职自荐信
2014/01/06 职场文书
优秀团员个人事迹材料
2014/01/29 职场文书
学校法制宣传月活动总结
2014/07/03 职场文书
企业消防安全责任书
2014/07/23 职场文书
低碳环保演讲稿
2014/08/28 职场文书
2014年庆祝国庆65周年演讲稿
2014/09/21 职场文书
个人工作总结范文2014
2014/11/07 职场文书
师德先进个人材料
2014/12/20 职场文书
关于Oracle12C默认用户名system密码不正确的解决方案
2021/10/16 Oracle
MySQL详解进行JDBC编程与增删改查方法
2022/06/16 MySQL
Springboot中如何自动转JSON输出
2022/06/16 Java/Android