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实现html双向绑定功能示例
Oct 09 jQuery
jQuery实现右侧抽屉式在线客服功能
Dec 25 jQuery
jQuery中库的引用方法
Jan 06 jQuery
jquery点击回车键实现登录效果并默认焦点的方法
Mar 09 jQuery
jquery实现的简单轮播图功能【适合新手】
Aug 17 jQuery
jQuery常见的遍历DOM操作详解
Sep 05 jQuery
jQuery实现的自定义轮播图功能详解
Dec 28 jQuery
jQuery无冲突模式详解
Jan 17 jQuery
JQueryDOM之样式操作
Mar 27 jQuery
jquery中为什么能用$操作
Jun 18 jQuery
jquery实现下载图片功能
Jul 18 jQuery
jQuery实现tab栏切换效果
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模板技术原理【一】
2008/01/10 PHP
laravel创建类似ThinPHP中functions.php的全局函数
2016/11/26 PHP
yii框架无限极分类的实现方法
2017/04/08 PHP
PHP实现动态获取函数参数的方法示例
2018/04/02 PHP
isArray()函数(JavaScript中对象类型判断的几种方法)
2009/11/26 Javascript
JavaScript根据数据生成百分比图和柱状图的实例代码
2013/07/14 Javascript
基于bootstrap实现广告轮播带图片和文字效果
2016/07/22 Javascript
SeaJS中use函数用法实例分析
2017/10/10 Javascript
完美解决axios在ie下的兼容性问题
2018/03/05 Javascript
轻松搞定jQuery+JSONP跨域请求的解决方案
2018/03/06 jQuery
vue多页面开发和打包正确处理方法
2018/04/20 Javascript
总结JavaScript在IE9之前版本中内存泄露问题
2018/04/28 Javascript
详解webpack引入第三方库的方式以及注意事项
2019/01/15 Javascript
在微信小程序中使用mqtt服务的方法
2019/12/13 Javascript
uni-app如何页面传参数的几种方法总结
2020/04/28 Javascript
ES6新增的数组知识实例小结
2020/05/23 Javascript
微信小程序实现倒计时功能
2020/11/19 Javascript
[01:21]DOTA2 新英雄 森海飞霞
2020/12/18 DOTA
Python中使用scapy模拟数据包实现arp攻击、dns放大攻击例子
2014/10/23 Python
python的变量与赋值详细分析
2017/11/08 Python
通过Py2exe将自己的python程序打包成.exe/.app的方法
2018/05/26 Python
python获取本机所有IP地址的方法
2018/12/26 Python
python交互界面的退出方法
2019/02/16 Python
Django 后台带有字典的列表数据与页面js交互实例
2020/04/03 Python
Python实现进度条和时间预估的示例代码
2020/06/02 Python
使用javascript和HTML5 Canvas画的四渐变色播放按钮效果
2014/04/10 HTML / CSS
html5 制作地图当前定位箭头的方法示例
2020/01/10 HTML / CSS
Collection和Collections的区别
2016/05/02 面试题
大专自我鉴定范文
2013/10/23 职场文书
回门宴新郎答谢词
2014/01/12 职场文书
茶叶店创业计划书范文
2014/01/19 职场文书
计算机多媒体专业自荐信
2014/07/04 职场文书
授权委托书(法人单位用)
2014/09/29 职场文书
教师节寄语2015
2015/03/23 职场文书
婚宴致辞
2015/07/28 职场文书
村主任当选感言
2015/08/01 职场文书