dropload的使用記錄


這次做一個H5的頁面,需要用到上拉加載,下拉刷新的功能,在網上看到ximen寫的dropload.js可以滿足需求(此處致謝作者),但是用的時候還是踩了一些坑,這里記錄下來備忘。

一些小問題:
1. me.noData(); 和 me.noData(true); 

表示當前無數據,也就是會在下方出現 (暫無數據)的表示
me.noData(false);則表示有數據,這時不會顯示(暫無數據)

2. 如果不希望用戶繼續加載數據則需要鎖定,這時候需要用 me.lock(); 如果需要開放則需要 me.unlock();

有個比較麻煩的點是 :  你如果僅僅 me.unlock()了,其實你會發現無法下拉,為啥呢? 因為 me.noData(), 這里需要告訴dropload有數據了,繼續吧, 所以需要調用 me.noData(false) 

1. 調用handler  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
var searchHelper = {
         droploader: null ,
         
         params: {
             pageNo: 1,
             pageSize: 10
         },
         
         init: function () {
             var me = searchHelper;
             
             me.droploader = $( '.free-list' ).dropload({
                 scrollArea : window,
                 loadUpFn: function (wo) {
                     me.refreshFunc(wo);
                 },
                 loadDownFn: function (wo) {
                     me.loadFunc(wo);
                 }
             });
         },
         
         refreshFunc: function (droploader) {
             var me = searchHelper;
             
             me.params.pageNo = 1;
             $.ajax({
                 type: 'POST' ,
                 url: '/search/test' ,
                 dataType: 'json' ,
                 data: me.params,
                 success: function (result) {
                     //重置
                     droploader.resetload();
                     
                     if (result.statusCode == 0 && result.data && result.data.length > 0) {
                         me.resetRenderFunc();
                         me.renderFunc(result.data);
                         //有數據
                         droploader.noData( false );
                         me.params.pageNo++;
                     } else {
                         //無數據
                         droploader.noData();
                     }
                     //重置
                     droploader.unlock();
                 },
                 error: function (xhr, type) {
                     console.log( '加載數據錯誤-' + type);
                     droploader.resetload();
                 }
             });
         },
         
         loadFunc: function (droploader) {
             var me = searchHelper;
             
             $.ajax({
                 type: 'POST' ,
                 url: '/search/test' ,
                 dataType: 'json' ,
                 data: me.params,
                 success: function (result) {
                     if (result.statusCode == 0 && result.data && result.data.length > 0) {
                         me.renderFunc(result.data);
                     } else {
                         //鎖定
                         droploader.lock();
                         //無數據
                         droploader.noData();
                     }
                     //重置
                     droploader.resetload();
                     me.params.pageNo++;
                 },
                 error: function (xhr, type) {
                     console.log( '加載數據錯誤-' + type);
                     droploader.resetload();
                 }
             });
         },
         
         renderFunc: function (data) {
             var info = '' ;
             $.each(data, function (index, entity) {
               info += '<li>' + entity + '</li>' ;
             });
             $( '.free-list ul' ).append(info);
         },
         
         resetRenderFunc: function () {
             $( '.free-list ul' ).empty();
         }
};

2. [代碼]外部重新加載數據的方式     

?
1
2
3
4
5
6
7
8
$( '#btn' ).click( function () {
         $( '.free-list ul' ).empty();
         searchHelper.params.pageNo = 1;
         // 解鎖
         searchHelper.droploader.unlock();
         searchHelper.droploader.noData( false );
         searchHelper.droploader.resetload();
     });

 

 

 

 

轉自:simananzhui 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM