mui上拉加载更多的使用

demo地址

我的另一博客原文链接
gitHub地址

mui框架中上拉加载的坑

1、在函数自己上拉加载行为后的回调函数
2、在mui封装的上拉加载中,点击某一项会失效。

解决方法

1、该函数是必须要写的,用来写自己的逻辑需求,但是一般情况下,需要设置显示为“加载更多”还是“没有更多数据了”。看了一些博客和官方文档,基本上都把这个设置放在了定时器中并在定时器中调用获取数据的方法(自己的业务需求)。
2、在mui封装的上拉加载中,点击某一项会失效。这个是真的很坑。就是采用事件监听的方式,阻止默认行为

示例代码

mui(‘选择器‘).on(‘tap‘,‘选择器‘,function(e){
     e.preventDefault();
    //自己的业务逻辑
})

一开始我将上述代码放在了mui.plusready()函数里面,可是事件并没有触发,所以,当我将它mui.plusready()中拿出来,事件就起作用了,我并不知道这是为什么,如果你偶尔看到这篇文章,可以告诉我一下。

demo代码

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0"/>
    <script>
        window.onload = function () {
            /*750代表设计师给的设计稿的宽度,你的设计稿是多少,就写多少;100代表换算比例,这里写100是
             为了以后好算,比如,你测量的一个宽度是100px,就可以写为1rem,以及1px=0.01rem等等*/
            getRem(750, 100)
        };
        window.onresize = function () {
            getRem(750, 100)
        };
        function getRem(pwidth, prem) {
            var html = document.getElementsByTagName("html")[0];
            var oWidth = document.body.clientWidth || document.documentElement.clientWidth;
            html.style.fontSize = oWidth / pwidth * prem + "px";
        }
    </script>
    <link rel="stylesheet" href="../css/mui.min.css"/>
    <link rel="stylesheet" href="../css/reset.css"/>
    <title>关于mui的上拉加载</title>
    <style>
        .mui-content {
            background: #fff;
        }

        h2 {
            font-size: 0.28rem;
            line-height: .6rem;
            padding-left: 10px;
        }

        .mui-scroll-wrapper {
            top: .75rem;
        }
    </style>
</head>
<body>
<div class="mui-content">
    <h2>上拉加载</h2>

    <div class="mui-scroll-wrapper" id="pullRefresh">
        <div class="mui-scroll">
            <ul class="mui-table-view" id="listContainer">
                <li class="mui-table-view-cell">
                    list1
                </li>
                <li class="mui-table-view-cell">
                    list2
                </li>
                <li class="mui-table-view-cell">
                    list3
                </li>
                <li class="mui-table-view-cell">
                    list4
                </li>
            </ul>
        </div>
    </div>
</div>

<script src="../js/jquery-2.1.3.min.js"></script>
<script src="../js/mui.min.js"></script>

<script>
    (function ($, doc) {
        var listContainer = doc.getElementById(‘listContainer‘);
        mui.init({
            pullRefresh: {
                container: ‘#pullRefresh‘,//待刷新区域标识,querySelector能定位的css选择器均可,比如:id、.class等
                up: {
                    height: 50,//可选.默认50.触发上拉加载拖动距离
                    auto: true,//可选,默认false.自动上拉加载一次
                    contentrefresh: "正在加载...",//可选,正在加载状态时,上拉加载控件上显示的标题内容
                    contentnomore: ‘没有更多数据了‘,//可选,请求完毕若没有更多数据时显示的提醒内容;
                    callback: pullfreshFunc //必选,刷新函数,根据具体业务来编写,比如通过ajax从服务器获取新数据;
                }
            }
        });
        var flag = true, counter = 1, pageSize = 10;

        function pullfreshFunc() {
            setTimeout(function () {
                mui(‘#pullRefresh‘).pullRefresh().endPullupToRefresh(flag);//参数为true代表没有更多数据了。
                getData();
            }, 500);

        }

        function getData() {
            mui.ajax({
                type: ‘get‘,
                url: ‘../json/data.json‘,
                data: {‘counter‘: counter},
                success: function (response) {
                    console.log(response);
                    let list = response.peopleList;

                    let html = "";
                    flag = !(list[0] == null || list[0] == "" || !list[0]);

                    if (flag) {
                        counter++;
                    }
                    for (let i = 0; i < list.length; i++) {
                        html += ‘<li class="mui-table-view-cell">‘ + list[i].name + ‘</li>‘;
                    }
                    jQuery(‘#listContainer‘).append(html)

                },
                error: function (error) {
                    console.log(error)
                }
            })
        }

        //点击单项事件
//        mui中上拉加载中的坑1:点击事件失效(不需要放在mui.plusReady()中)
        mui(‘#pullRefresh‘).on(‘tap‘, ‘li.mui-table-view-cell‘, function (e) {
            e.preventDefault();
            console.log(‘触发点击事件了‘)
        })
    }(mui, document))
</script>
</body>
</html>

原文地址:https://www.cnblogs.com/qianduanwriter/p/11847757.html

时间: 2024-11-09 11:59:17

mui上拉加载更多的使用的相关文章

mui 上拉加载更多的使用

最近工作之余在用mui的框架开发,对mui了解了一些.在真正的app开发项目中,mui上拉加载模块中有两个坑,现在说一下. 1.在函数自己上拉加载行为后的回调函数 该函数是必须要写的,用来写自己的逻辑需求,但是一般情况下,需要设置显示为"加载更多"还是"没有更多数据了". 看了一些博客和官方文档,基本上都把这个设置放在了定时器中 在定时器中调用获取数据的方法(自己的业务需求) 2.在mui封装的上拉加载中,点击某一项会失效.这个是真的很坑.不过网上也有解决方法.就是

Andorid上拉加载更多的几种实现方式

1.前言 Andriod中上拉加载更多的效果随处可见,因为一次性要展现的数据太多信息量太大的话,给用户的体验就很差(加载慢,界面卡顿.流量消耗大等),而加载更多可以控制每次加载条目的数量以达到快速加载,底部加载更多的方式就显得更人性化,今天就把用过的几种方式总结一下. 2.上拉加载更多的实现方式 ListView控件;作为一种传统列表展现的方式,ListView控件的addHeaderView(...).addFooterView(...)方法很方便的支持头布局.脚布局,参数就是打气筒打出来的布

android 安卓 listview 支持下拉刷新 上拉加载更多

[1]重写listView import java.text.SimpleDateFormat; import java.util.Date; import android.content.Context; import android.util.AttributeSet; import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.view.ViewGrou

android ListView上拉加载更多 下拉刷新功能实现(采用pull-to-refresh)

Android实现上拉加载更多功能以及下拉刷新功能, 采用了目前比较火的PullToRefresh,他是目前实现比较好的下拉刷新的类库. 目前他支持的控件有:ListView, ExpandableListView,GridView,WebView等. 下载地址:https://github.com/chrisbanes/Android-PullToRefresh 首先第一步当然是导入libriay到咱们的项目了,具体导入方式,这里不再赘述. 下面是个例子采用的是ListView,当然其余的和这

下拉刷新与上拉加载更多

代码如下: /** * ListView下拉刷新和加载更多 * <p> * * <strong>变更说明:</strong> * <p> * 默认如果设置了OnRefreshListener接口和OnLoadMoreListener接口 * <p> * 剩余三个Flag: <br> * mIsAutoLoadMore(是否自动加载更多) <br> * mIsMoveToFirstItemAfterRefresh(下拉刷新后

Android实战简易教程-第五十三枪(通过实现OnScrollListener接口实现上拉加载更多功能)

支持上拉加载更多的控件有很多,但是你知道背后的原理吗?有一些面试官可能会问到这方便的知识,他们认为会用不是目的,懂背后的原理才是真人才.下面我们通过实现OnScrollListener接口实现上拉加载更多的效果,这里用到了回调接口,你需要对回调进行比较好的理解,回调机制是Android中很重要的机制,下面我们看一下代码: 1.定义一个footer.xml,用于下拉提示的效果: <?xml version="1.0" encoding="utf-8"?>

android 下拉刷新上拉加载更多,高仿ios左滑动删除item,解决了众多手势问题

一.前言 老规矩,别的不说,这demo是找了很相关知识集合而成的,可以说对我这种小白来说是绞尽脑汁!程序员讲的是无图无真相!现在大家一睹为快! 二.比较关键的还是scroller这个类的 package com.icq.slideview.view; import android.content.Context; import android.util.AttributeSet; import android.util.Log; import android.util.TypedValue; i

移动端touch事件 || 上拉加载更多

前言: 说多了都是泪,在进行项目开发时,在上拉加载更多实现分页效果的问题上,由于当时开发任务紧急,所以就百度找了各种移动端的上拉下拉 实现加载更多的插件.然后就留下了个坑:上拉加载的时候会由于用户错误的姿势,例如长按后再touchmove等会出现卡死的假象.(ps:当然, 我不认为是插件的问题,当时的想法是觉得引用的插件存在冲突),于是,我就直接通过封装touch事件完成上拉加载实现分页的功能. 备注:文章最后会加上为实现这个功能我找的一些插件 了解touch事件 在应用touch事件实现上拉加

Android上拉加载更多ListView——PulmListView

思路 今天带大家实现一个上拉加载更多的ListView.GitHub传送门:PulmListView, 欢迎大家fork&&star. 先带大家理一下思路, 如果我们要实现一个上拉加载更多的ListView, 我们需要实现的功能包括: 一个自定义的ListView, 并且该ListView能够判断当前是否已经处于最底部. 一个自定义的FooterView, 用于在ListView加载更多的过程中进行UI展示. 关联FooterView和ListView, 包括加载时机判断.FooterVi