关于mescroll的下拉刷新的问题。

1.下拉刷新失败,不会清除div的数据。每次下拉时会叠加

  1. 图片描述

代码如下:

<div class="g-scrollview">
        <div class="mescroll" id="mescroll">
            <!-- prolistdivdata -->
            <div id="prolistdiv" class="prolistdiv"></div>
            <!-- / prolistdivdata -->
        </div>
    </div>
var houzui = {
    order: ''
};
var mescroll = new MeScroll('mescroll', {
    up: {
        clearEmptyId: "prolistdiv",
        callback: getlistdata, 
        isBounce: false,
        empty: {
            tip: "暂无相关数据~", //提示
        }
    }
});
function getlistdata(page) {
    houzui.p = page.num;
    var hz = $.param(houzui);
    hz = '&' + hz;
    $.ajax({
        type: 'GET',
        url: "{:U('getindexlist',['cate'=>$_GET['cate']])}" + hz, //URL替换下
        dataType: 'json',
        success: function (curPageData) {
            mescroll.endSuccess(curPageData.length);
            //设置列表数据
            setListData(curPageData); //自行实现 TODO
        },
        error: function (e) {
            console.log(e)
            //联网失败的回调,隐藏下拉刷新和上拉加载的状态
            mescroll.endErr();
        }
    });
    console.log(houzui,page.num)
}
function setListData(curPageData) {
            
    var listhtml = '';
    $.each(curPageData.list, function (i, v) {
        listhtml += '<div class="fcx-card" data-id="' + v.ninsgoods_id + '"><div class="fcx-card-header">';
        listhtml += '<div class="insuranceType-name">' + v.ninsgoods_title + '</div>';
        listhtml += '<div class="insuranceCompany-logo"><img src="' + v.insurance_company_img +'" alt="' + v.ninsgoods_title + '">' + '' + '</div></div>';
        listhtml += '<div class="fcx-card-content"><div class="fcx-card-content-inner"><ul class="situation clearfix">';
        $.each(v.ninsgoods_abs, function (ci, cv) {
            listhtml += '<li>' + cv + '</li>';
        });
        listhtml += '</ul><ul class="characteristic">';
        $.each(v.ninsgoods_tese, function (ci, cv) {
            listhtml += '<li><i class="iconfont icon-bangbang"></i><span> ' + cv +'</span></li>';
        });
        listhtml += '</ul><hr><ul class="insuranceTypeList clearfix">';
        $.each(v.baozhang, function (ci, cv) {
            listhtml += '<li class="item"><span>' + cv.ninsgoods_addition_title +'</span><span>' + cv.ninsgoods_addition_abs + '</span></li>';
        });
        listhtml += '</ul></div></div><div class="fcx-card-footer"><div class="yellow">';
        listhtml += '<b>&yen; ' + v.ninsgoods_price + '起</b> <span>费用比例' + v.ninsgoods_rate_frate +'%</span></div><div class="">';
        listhtml += '销量:' + v.ninsgoods_salecount + '份</div></div></div>';
    });
    $('#prolistdiv').append(listhtml);
};
阅读 5.3k
2 个回答

从你的代码来看,并没有看到清除内容的语句。

//设置列表数据
            setListData(curPageData); //自行实现 TODO

这个函数只有看到有个append方法,并没有清除内容的方法。
可以先尝试移除,然后再设置

$('#prolistdiv').children().remove();
 $('#prolistdiv').append(listhtml);
新手上路,请多包涵

我想知道这个page.num怎么来的,没看见在哪里声明啊

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题