jQuery+AJAX实现无刷新下拉加载更多


Posted in Javascript onJuly 03, 2015

随着互联网时代的发展,web前端已经和后台数据挂钩,作为web前端仅仅不是只切图写写html,css  和简单js交互。

js  code

$(function() {
  var page = 1;
  var discount = $('#discount');
  var innerHeight = window.innerHeight;
  var timer2 = null;
  $.ajax({
    url: '/lightapp/marketing/verify/apply/list?page=1',
    type: 'GET',
    dataType: 'json',
    timeout: '1000',
    cache: 'false',
    success: function (data) {
        if (data.error_code === 0) {
          var arrText = [];
          for (var i = 0, t; t = data.list[i++];) {
            arrText.push('<div class="consume-whole">');
            arrText.push('<h3>' + t.title + '</h3>');
            if (t.coupon_type == 1 ) {
              arrText.push('<p>金额:¥' + t.amount + '</p>');
            } else {
              arrText.push('<p>优惠:' + t.amount + '</p>');
            }
            arrText.push('<p><span class="hx-user">用户:s账户飒飒是是是啊啊12' + t.user_name +'</span>' + '<span>核销时间:' + t.use_time + '</span></p>');
            arrText.push('</div>');
          }
          discount.html(arrText.join(''));
        };
        var ajax_getting = false; 
        $(window).scroll(function() {
          clearTimeout(timer2);
          timer2 = setTimeout(function() {
            var scrollTop = $(document.body).scrollTop();
            var scrollHeight = $('body').height();

            var windowHeight = innerHeight;
            var scrollWhole = Math.max(scrollHeight - scrollTop - windowHeight);
            if (scrollWhole < 100) {
              if (ajax_getting) {
                return false;
              } else {
                ajax_getting = true;
              }
              discount.append('<div class="load"><img src="/lightapp/static/zhida-yunying/img/load.gif" width="6%" /></div>');
              $('html,body').scrollTop($(window).height() + $(document).height());
              page++;
              $.ajax({
                url: '/lightapp/marketing/verify/apply/list?page=' + page,
                type: 'GET',
                dataType: 'json',
                success: function (data) {
                  if (data.error_code === 0) {
                    var arrText = [];
                    for (var i = 0, t; t = data.list[i++];) {
                      arrText.push('<div class="consume-whole"><a href="/lightapp/marketing/verify/page/info?rule_id=' + t.rule_id + '&coupon_id='+ t.coupon_id +'">');
                      arrText.push('<h3>' + t.title + '</h3>');
                      if (t.coupon_type == 1 ) {
                         arrText.push('<p>金额:¥' + t.amount + '</p>');
                      } else {
                        arrText.push('<p>优惠:' + t.amount + '</p>');
                      };
                      arrText.push('<p><span class="hx-user">用户:账户飒111111111' + t.user_name +'</span>' + '<span>核销时间:' + t.use_time + '</span></p>');
                      arrText.push('</a></div>');
                    }
                    discount.append(arrText.join(''));
                    $(".load").remove();
                  } else {
                    $(".load").remove();
                    discount.append('<div class="no-data">没有更多数据。</div>');
                    $(window).unbind('scroll');
                  };
                  ajax_getting = false;
                }
              });

            };
            $(".load").remove();
          }, 200);
        });
        if (data.error_code == 156006) {
          $('.coupon').html('<div class="error"><h2>出错啦!</h2><p>原因:未登录</p></div>')
        };
        if (data.error_code == 156003) {
          $('.coupon').html('<div class="error"><h2>出错啦!</h2><p>原因:权限不足~请补充</p></div>')
        };
        if (data.error_code == 156007) {
          $('.coupon').html('<div class="error"><h2>出错啦!</h2><p>原因:服务异常</p></div>')
        };
        if (data.error_code == 511) {
          $('.coupon').html('<div class="error"><h2>出错啦!</h2><p>原因:账号未开通直达号</p></div>')
        };
        if (data.error_code == 520) {
          $('.coupon').html('<div class="stays"><span></span><p>暂无核销记录</p></div>')
        }

      },
      error: function (data) {

      }
  })
  $(window).bind("orientationchange", function() {
    $('.sliders').css('left',$(window).width() / 2 +'px');
  })
})

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
jQuery 1.2.x 升? 1.3.x 注意事项
May 06 Javascript
juqery 学习之五 文档处理 包裹、替换、删除、复制
Feb 11 Javascript
避免回车键导致的页面无意义刷新的解决方法
Apr 12 Javascript
javascript动画浅析
Aug 30 Javascript
用js判断页面是否加载完成实现代码
Dec 11 Javascript
onclick与listeners的执行先后问题详细解剖
Jan 07 Javascript
JavaScript 和 Java 的区别浅析
Jul 31 Javascript
js返回前一页刷新本页重载页面
Jul 29 Javascript
angularjs中的e2e测试实例
Dec 06 Javascript
Angular 5.0 来了! 有这些大变化
Nov 15 Javascript
详解vue axios用post提交的数据格式
Aug 07 Javascript
JavaScript canvas实现雪花随机动态飘落
Feb 08 Javascript
Javascript实现字数统计
Jul 03 #Javascript
JavaScript获取表格(table)当前行的值、删除行、增加行
Jul 03 #Javascript
jQuery中 delegate使用的问题
Jul 03 #Javascript
JavaScript实现select添加option
Jul 03 #Javascript
JavaScript定时器和优化的取消定时器方法
Jul 03 #Javascript
Javascript中的作用域和上下文深入理解
Jul 03 #Javascript
JavaScript访问字符串中单个字符的两种方法
Jul 03 #Javascript
You might like
外媒评选出10支2020年最受欢迎的Dota2战队
2021/03/05 DOTA
php cli 小技巧
2013/06/03 PHP
php防止sql注入代码实例
2013/12/18 PHP
laravel migrate初学常见错误的解决方法
2017/10/11 PHP
php和html的区别点详细总结
2019/09/24 PHP
给moz-firefox下添加IE方法和属性
2007/04/10 Javascript
Code: write(s,d) 输出连续字符串
2007/08/19 Javascript
5款Javascript颜色选择器
2009/10/25 Javascript
当鼠标移动到图片上时跟随鼠标显示放大的图片效果
2013/06/06 Javascript
快速掌握Node.js事件驱动模型
2016/03/21 Javascript
Node.js中防止错误导致的进程阻塞的方法
2016/08/11 Javascript
BOM之navigator对象和用户代理检测
2017/02/10 Javascript
Node.js如何实现注册邮箱激活功能 (常见)
2017/07/23 Javascript
React教程之Props验证的具体用法(Props Validation)
2017/09/04 Javascript
基于js粘贴事件paste简单解析以及遇到的坑
2017/09/07 Javascript
Vue+jquery实现表格指定列的文字收缩的示例代码
2018/01/09 jQuery
JS/jQuery实现DIV延时几秒后消失或显示的方法
2018/02/12 jQuery
详解关于vue-area-linkage走过的坑
2018/06/27 Javascript
AngularJS自定义表单验证功能实例详解
2018/08/24 Javascript
[02:10]2018DOTA2亚洲邀请赛赛前采访-Liquid
2018/04/03 DOTA
Python算法应用实战之栈详解
2017/02/04 Python
Python使用matplotlib实现的图像读取、切割裁剪功能示例
2018/04/28 Python
python数据归一化及三种方法详解
2019/08/06 Python
Python操作MongoDb数据库流程详解
2020/03/05 Python
深入理解Python 多线程
2020/06/16 Python
python中os.remove()用法及注意事项
2021/01/31 Python
详解如何将 Canvas 绘制过程转为视频
2021/01/25 HTML / CSS
应届生煤化工求职信
2013/10/21 职场文书
军训鉴定表自我鉴定
2014/02/13 职场文书
2014年后勤工作总结
2014/11/18 职场文书
课堂打架检讨书200字
2014/11/21 职场文书
2015年消防工作总结
2015/04/24 职场文书
如何用Node.js编写内存效率高的应用程序
2021/04/30 Javascript
python_tkinter事件类型详情
2022/03/20 Python
使用vue判断当前环境是安卓还是IOS
2022/04/12 Vue.js
MySQL 表锁定 LOCK和UNLOCK TABLES的 SQL语法
2022/04/18 MySQL