mui 中的一个上拉加载及下拉刷新的方法 ,但是我使用ajax拿不到url中的数据,是为什么?

发布于 2022-09-05 19:29:47 字数 4568 浏览 15 评论 0

(function($) {
                //阻尼系数
                var deceleration = mui.os.ios?0.003:0.0009;
                $('.mui-scroll-wrapper').scroll({
                    bounce: false,
                    indicators: true, //是否显示滚动条
                    deceleration:deceleration
                });
                $.ready(function() {
                    //循环初始化所有下拉刷新,上拉加载。
                    $.each(document.querySelectorAll('.mui-slider-group .mui-scroll'), function(index, pullRefreshEl) {
                        $(pullRefreshEl).pullToRefresh({
                            down: {
                                callback: function() {
                                    var self = this;
                                    setTimeout(function() {
                                        var ul = self.element.querySelector('.mui-table-view');
                                        ul.insertBefore(createFragment(ul, index, 10, true), ul.firstChild);
                                        self.endPullDownToRefresh();
                                    }, 1000);
                                }
                            },
                            up: {
                                callback: function() {
                                    var self = this;
                                    setTimeout(function() {
                                        var ul = self.element.querySelector('.mui-table-view');
                                        ul.appendChild(createFragment(ul, index, 5));
                                        self.endPullUpToRefresh();
                                    }, 1000);
                                }
                            }
                        });
                    });
                    var createFragment = function(ul, index, count, reverse) {
                        //var length = ul.querySelectorAll('li').length;
                        var fragment = document.createDocumentFragment();
                        var li;
                        var dataArr = dataList();//我在这里调用这个方法 
                        
                        for (var z = 0; z < count; z++) {
                            li = document.createElement('li');
                            li.className = 'mui-table-view-cell';
                            //li.innerHTML = '第' + (index + 1) + '个选项卡子项-' + (length + (reverse ? (count - i) : (i + 1)));
                            
                            
                            for(var i = 0; i < dataArr.length; i++){
                                var item = data[i];
                                var faqId = item.faqId;
                                var faqName = item.faqName;
                            }
                            li.innerHTML = '<li class="mui-table-view-cell" data-id=' + faqId + '><a class="mui-navigate-right"><p class="anviz-ellipsis js-ellipsis">' + faqName + '</p></a></li>'
                            fragment.appendChild(li);
                        }
                        
                        return fragment;
                    };
                    
                    //没有拿到数据,但是url测试时是有数据的
                    var dataList = function(){
                        var url = 'http://www.beta.anviz.com/myanviz/faq/ajax.html?category_id=0';
                        
                        var dataArr = [];
                        mui.ajax({
                            type: 'GET',
                            url: url,
                            dataType: 'json',
                            success: function(data) {
                                console.log(data);//这个data就没有数据
                                var list = data.data;
                                for(var i = 0; i < list.length; i++) {
                                    var item = list[i];
                                    var faqName = item.faqName;
                                    var faqId = item.faqId;
                                    
                                    var dataEntity = {};
                                    dataEntity.faqName = faqName;
                                    dataEntity.faqId = faqId;
                                }
                                dataArr.push(dataEntity);
                                return dataArr;
                            }
                        });
                    }
                });
            })(mui);

ajax中的url是有数据的,但是却在调试中却取不出来,不知道是什么原因,大家能帮着看看吗?谢谢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

恰似旧人归 2022-09-12 19:29:47

ajax是异步的,var dataArr = dataList() 这样子赋值只能是undefined咯,试一下用callback在success里面处理

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文