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 23 jQuery
jQuery ajax请求struts action实现异步刷新
Apr 19 jQuery
jquery.validate.js 多个相同name的处理方式
Jul 10 jQuery
基于jQuery实现手风琴菜单、层级菜单、置顶菜单、无缝滚动效果
Jul 20 jQuery
jQuery中 DOM节点操作方法大全
Oct 12 jQuery
jQuery实现点击下拉框中的值累加到文本框中的方法示例
Oct 28 jQuery
jQuery实现判断上传图片类型和大小的方法示例
Apr 11 jQuery
jquery 动态遍历select 赋值的实例
Sep 12 jQuery
JQuery Ajax执行跨域请求数据的解决方案
Dec 10 jQuery
详解jquery和vue对比
Apr 16 jQuery
jquery实现上传图片功能
Jun 29 jQuery
jQuery实现朋友圈查看图片
Sep 11 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结合js实现点击超链接执行删除确认操作
2014/10/31 PHP
thinkPHP框架中执行原生SQL语句的方法
2017/10/25 PHP
PHP封装的XML简单操作类完整实例
2017/11/13 PHP
浅谈laravel-admin form中的数据,在提交后,保存前,获取并进行编辑
2019/10/21 PHP
Hutia 的 JS 代码集
2006/10/24 Javascript
[原创]来自ImageSee官方 JavaScript图片浏览器
2008/01/16 Javascript
javascript 类方法定义还是有点区别
2009/04/15 Javascript
jQuery解决iframe高度自适应代码
2009/12/20 Javascript
使用Javascript简单实现图片无缝滚动
2014/12/05 Javascript
JavaScript实现仿新浪微博大厅和腾讯微博首页滚动特效源码
2015/09/15 Javascript
javascript RegExp 使用说明
2016/05/21 Javascript
jquery实用技巧之输入框提示语句
2016/07/28 Javascript
angularjs点击图片放大实现上传图片预览
2017/02/24 Javascript
ionic3实战教程之随机布局瀑布流的实现方法
2017/12/28 Javascript
JavaScript实现单图片上传并预览功能
2019/09/30 Javascript
js仿360开机效果
2019/12/26 Javascript
使用typescript改造koa开发框架的实现
2020/02/04 Javascript
vue 动态添加的路由页面刷新时失效的原因及解决方案
2021/02/26 Vue.js
解决python字典对值(值为列表)赋值出现重复的问题
2019/01/20 Python
python实现PDF中表格转化为Excel的方法
2020/06/16 Python
解决Keras中Embedding层masking与Concatenate层不可调和的问题
2020/06/18 Python
ECCO俄罗斯官网:北欧丹麦鞋履及皮具品牌
2020/06/26 全球购物
27个经典Linux面试题及答案,你知道几个?
2014/03/11 面试题
装饰资料员岗位职责
2013/12/30 职场文书
婚礼证婚人证婚词
2014/01/08 职场文书
晚会主持人开场白台词
2015/05/28 职场文书
中学教师读书笔记
2015/07/01 职场文书
推广普通话宣传标语口号
2015/12/26 职场文书
个人业务学习心得体会
2016/01/25 职场文书
个人的事迹材料怎么写
2019/04/24 职场文书
读《工匠精神》有感:热爱工作,精益求精
2019/12/28 职场文书
SpringAop日志找不到方法的处理
2021/06/21 Java/Android
Spring mvc是如何实现与数据库的前后端的连接操作的?
2021/06/30 Java/Android
上个世纪50年代的可穿戴技术:无线电帽子
2022/02/18 无线电
Vue如何清空对象
2022/03/03 Vue.js
分析MySQL优化 index merge 后引起的死锁
2022/04/19 MySQL