list_scroll_load.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. // 团列表页滚动加载处理
  2. (function ($) {
  3. $("[data-ajax-next-page-url]").each(function () {
  4. var ajaxNextPageUrl = $(this).attr('data-ajax-next-page-url');
  5. if (typeof(ajaxNextPageUrl) == "undefined") {
  6. return;
  7. }
  8. $(".ajax_page").scrollLoad(ajaxNextPageUrl, function (url) {
  9. // 引用函数自身
  10. console.log(10);
  11. var func_self = arguments.callee;
  12. var jq = $(this);
  13. jq.html('图片');
  14. $.ajax({
  15. url: url
  16. , type: "GET"
  17. , dataType: "json"
  18. , success: function (data) {
  19. if (data.ok) {
  20. $('.ks_gb_leftshowlist').append(data.msg.html);
  21. // 如果存在下一页,或者ajax调取数据失败,则继续绑定滚动加载事件
  22. if (data.msg.hasNextPage) {
  23. jq.html("");
  24. jq.scrollLoad(data.msg.nextPageUrl, func_self);
  25. } else {
  26. jq.attr("is_last_page", true);
  27. }
  28. }
  29. }
  30. , error: function (xhr, textStatus, errorThrown) {
  31. switch (textStatus) {
  32. case 'parsererror':// 返回了非json数据
  33. jq.html("获取下一页出错,原因:"+xhr.responseText);
  34. break;
  35. case 'timeout':// 超时,可以重绑滚动加载事件
  36. jq.html("获取下一页超时");
  37. jq.scrollLoad(url, func_self);
  38. break;
  39. case 'error':
  40. if (xhr.status == 504) {// 超时,可以重绑滚动加载事件
  41. jq.html("获取下一页超时");
  42. jq.scrollLoad(url, func_self);
  43. break;
  44. }
  45. default:
  46. jq.html("获取下一页出错");
  47. }
  48. }
  49. , timeout: 5000
  50. });
  51. });
  52. });
  53. })(jQuery);