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实现tab键进行选择后enter键触发click行为
Mar 29 jQuery
jQuery实现文章图片弹出放大效果
Apr 06 jQuery
jquery点赞功能实现代码 点个赞吧!
May 29 jQuery
jQuery中的deferred对象和extend方法详解
May 08 jQuery
jQuery复合事件用法示例
Jun 10 jQuery
jQuery实现的粘性滚动导航栏效果实例【附源码下载】
Oct 19 jQuery
jQuery实现所有验证通过方可提交的表单验证
Nov 21 jQuery
JS/jQuery实现DIV延时几秒后消失或显示的方法
Feb 12 jQuery
jQuery实现动态加载select下拉列表项功能示例
May 31 jQuery
jQuery操作元素追加内容示例
Jan 10 jQuery
jQuery加PHP实现图片上传并提交的示例代码
Jul 16 jQuery
JQuery基于FormData异步提交数据文件
Sep 01 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中的mongodb select常用操作代码示例
2014/09/06 PHP
如何批量清理系统临时文件(语言:C#、 C/C++、 php 、python 、java )
2016/02/01 PHP
浅谈PHP定义命令空间的几个注意点(推荐)
2016/10/29 PHP
javascript中的new使用
2010/03/20 Javascript
一个JS的日期格式化算法示例
2013/07/31 Javascript
JS中Date日期函数中的参数使用介绍
2014/01/02 Javascript
简介JavaScript中Math.LOG10E属性的使用
2015/06/14 Javascript
jQuery插件实现无缝滚动特效
2015/11/24 Javascript
jQuery实现点击表格单元格就可以编辑内容的方法【测试可用】
2016/08/01 Javascript
Angularjs中$http以post请求通过消息体传递参数的实现方法
2016/08/05 Javascript
AngularJS控制器之间的通信方式详解
2016/11/03 Javascript
Vue.js 递归组件实现树形菜单(实例分享)
2016/12/21 Javascript
EasyUI修改DateBox和DateTimeBox的默认日期格式示例
2017/01/18 Javascript
如何正确理解javascript的模块化
2017/03/02 Javascript
vue-cli中安装方法(图文详细步骤)
2018/12/12 Javascript
JS添加或删除HTML dom元素的方法实例分析
2019/03/05 Javascript
使用RxJS更优雅地进行定时请求详析
2019/06/02 Javascript
pageGroup.js实现分页功能
2019/07/27 Javascript
jQuery实现放大镜案例
2020/10/19 jQuery
Python实现模拟浏览器请求及会话保持操作示例
2018/07/30 Python
python使用插值法画出平滑曲线
2018/12/15 Python
Pytorch 实现冻结指定卷积层的参数
2020/01/06 Python
Python转换itertools.chain对象为数组的方法
2020/02/07 Python
keras中的History对象用法
2020/06/19 Python
Python OpenCV去除字母后面的杂线操作
2020/07/05 Python
Python中免验证跳转到内容页的实例代码
2020/10/23 Python
Python接口自动化测试框架运行原理及流程
2020/11/30 Python
CSS3实现多样的边框效果
2018/05/04 HTML / CSS
新年联欢会主持词
2014/03/27 职场文书
手术室护士长竞聘书
2014/03/31 职场文书
治超工作实施方案
2014/05/04 职场文书
体育运动会广播稿
2014/10/05 职场文书
团代会开幕词
2015/01/28 职场文书
赵氏孤儿观后感
2015/06/09 职场文书
MySQL分区路径子分区再分区
2022/04/13 MySQL
Sentry的安装、配置、使用教程(Sentry日志手机系统)
2022/07/23 Python