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 tip提示插件(实例分享)
Apr 28 jQuery
使用jQuery.Pin垂直滚动时固定导航
May 24 jQuery
jquery中有哪些api jQuery主要API
Nov 20 jQuery
用jquery获取select标签中选中的option值及文本的示例
Jan 25 jQuery
jquery动态添加带有样式的HTML标签元素方法
Feb 24 jQuery
使用jquery DataTable和ajax向页面显示数据列表的方法
Aug 09 jQuery
jQuery常见的遍历DOM操作详解
Sep 05 jQuery
jQuery实现的卷帘门滑入滑出效果【案例】
Feb 18 jQuery
[jQuery] 事件和动画详解
Mar 05 jQuery
jQuery中DOM常见操作实例小结
Aug 01 jQuery
如何使用Jquery动态生成二级选项列表
Feb 06 jQuery
jQuery实现鼠标拖动图片功能
Mar 04 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实现的购物车类实例
2015/06/17 PHP
PHP自定义函数获取URL中一级域名的方法
2016/08/23 PHP
Discuz! 6.1_jQuery兼容问题
2008/09/23 Javascript
jquery1.4后 jqDrag 拖动 不可用
2010/02/06 Javascript
JS可以控制样式的名称写法一览
2014/01/16 Javascript
元素未显示设置width/height时IE中使用currentStyle获取为auto
2014/05/04 Javascript
JavaScript操作HTML DOM节点的基础教程
2016/03/11 Javascript
js实现数字递增特效【仿支付宝我的财富】
2017/05/05 Javascript
浅谈Vuex@2.3.0 中的 state 支持函数申明
2017/11/22 Javascript
解决Linux无法正常安装与卸载Node.js的方法
2018/01/19 Javascript
浅谈vue引入css,less遇到的坑和解决方法
2018/01/20 Javascript
JS实现将对象转化为数组的方法分析
2019/01/21 Javascript
详解element-ui日期时间选择器的日期格式化问题
2019/04/08 Javascript
详解JS实现简单的时分秒倒计时代码
2019/04/25 Javascript
在mpvue框架中使用Vant WeappUI组件库的注意事项【推进】
2019/06/09 Javascript
Vue的路由及路由钩子函数的实现
2019/07/02 Javascript
vue点击自增和求和的实例代码
2019/11/06 Javascript
python实现的阳历转阴历(农历)算法
2014/04/25 Python
python正则分析nginx的访问日志
2017/01/17 Python
Python探索之修改Python搜索路径
2017/10/25 Python
linux环境下的python安装过程图解(含setuptools)
2017/11/22 Python
用python简单实现mysql数据同步到ElasticSearch的教程
2018/05/30 Python
Python 分享10个PyCharm技巧
2019/07/13 Python
python 图像处理画一个正弦函数代码实例
2019/09/10 Python
用python查找统一局域网下ip对应的mac地址
2021/01/13 Python
Nike西班牙官方网站:Nike.com (ES)
2017/10/30 全球购物
泰国演唱会订票网站:StubHub泰国
2018/02/26 全球购物
美国战术品牌:5.11 Tactical
2019/05/01 全球购物
世界各地的当地人的食物体验:Eatwith
2019/07/26 全球购物
幼儿园教育教学反思
2014/01/31 职场文书
行政文员实习自我鉴定范文
2014/09/14 职场文书
抄袭同学作业检讨书1000字
2014/11/20 职场文书
2015年部门工作总结范文
2015/03/31 职场文书
领导激励员工的演讲稿,各种会上用得到,建议收藏
2019/08/13 职场文书
Win11怎么启动任务管理器?Win11启动任务管理器的几种方法
2021/11/23 数码科技
Redis过期数据是否会被立马删除
2022/07/23 Redis