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插件FusionCharts绘制的2D条状图效果【附demo源码】
May 13 jQuery
Jquery EasyUI $.Parser
Jun 02 jQuery
jquery加载单文件vue组件的方法
Jun 20 jQuery
jQuery图片缩放插件smartZoom使用实例详解
Aug 25 jQuery
jQuery实现的弹幕效果完整实例
Sep 06 jQuery
利用jquery如何从json中读取数据追加到html中
Dec 01 jQuery
jQuery时间戳和日期相互转换操作示例
Dec 07 jQuery
Jquery的Ajax技术使用方法
Jan 21 jQuery
JQuery实现简单的复选框树形结构图示例【附源码下载】
Jul 16 jQuery
jQuery操作动画完整实例分析
Jan 10 jQuery
jQuery 选择器用法实例分析【prev + next】
May 22 jQuery
JQuery获得内容和属性方法解析
May 30 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
在windows服务器开启php的gd库phpinfo中未发现
2013/01/13 PHP
基于php中使用excel的简单介绍
2013/08/02 PHP
PHP实现手机号码中间四位用星号(*)隐藏的自定义函数分享
2014/09/27 PHP
php metaphone()函数及php localeconv() 函数实例解析
2016/05/15 PHP
PHP实现活动人选抽奖功能
2017/04/19 PHP
JS方法调用括号的问题探讨
2014/01/24 Javascript
javascript中日期函数new Date()的浏览器兼容性问题
2015/09/05 Javascript
第一次接触神奇的Bootstrap菜单和导航
2016/08/01 Javascript
ionic组件ion-tabs选项卡切换效果实例
2016/08/27 Javascript
EasyUI Combobox设置默认值 获取text的方法
2016/11/28 Javascript
setTimeout学习小结
2017/02/08 Javascript
javascript中mouseenter与mouseover的异同
2017/06/06 Javascript
Angular6 Filter实现页面搜索的示例代码
2018/12/02 Javascript
Pyramid添加Middleware的方法实例
2013/11/27 Python
python操作日期和时间的方法
2014/03/11 Python
python数组复制拷贝的实现方法
2015/06/09 Python
Python 正则表达式入门(初级篇)
2016/12/07 Python
Python如何快速上手? 快速掌握一门新语言的方法
2017/11/14 Python
python3大文件解压和基本操作
2017/12/15 Python
在python中实现强制关闭线程的示例
2019/01/22 Python
Python3.4学习笔记之类型判断,异常处理,终止程序操作小结
2019/03/01 Python
python3.4+pycharm 环境安装及使用方法
2019/06/13 Python
Python叠加两幅栅格图像的实现方法
2019/07/05 Python
Python Selenium模块安装使用教程详解
2020/07/09 Python
HTML5 Canvas实现360度全景图的示例代码
2018/01/29 HTML / CSS
韩国三大免税店之一:THE GRAND 中文免税店
2016/07/21 全球购物
新加坡网上花店:FlowerAdvisor新加坡
2018/10/05 全球购物
大学生求职简历的自我评价
2013/10/14 职场文书
社区母亲节活动记录
2014/03/06 职场文书
《四季》教学反思
2014/04/08 职场文书
合唱兴趣小组活动总结
2014/07/10 职场文书
后勤工作个人总结
2015/02/28 职场文书
大学生敬老院活动总结
2015/05/07 职场文书
辩护词范文大全
2015/05/21 职场文书
迁徙的鸟观后感
2015/06/09 职场文书
Python Flask搭建yolov3目标检测系统详解流程
2021/11/07 Python