织梦加载更多json写法!

首先后台需要支持ajax 

然后写好调用的组件

//page是页码 ,id是栏目id pagesize是每页个数  cb是是否执行 dom是需要操作的id /template是需要替换的模板
function listajax(page,dom,id,pagesize,cb,template){
  var tid=id || 3;//获取id
  var page=page || 1;//获取页码
  var pagesize=pagesize || 4;//获取每页个数
  var dom=$("#"+dom) || $("#news");//获取dom
  $.ajax({
    url: '/plus/list_ajax.php',
    type: 'GET',
    dataType: 'json',
    data: {
      ajax:'ss',
      typeid:tid,
      page:page,
      pagesize:pagesize
    },
    success:function(e){
      console.log(e);
        if(e.data.length>0){
        if(template){//判断是否有模板导入,如果没有则执行默认的模板方式
             template(e.data,dom);
                 if (cb!='') {
               cb()
              }
          }else{
         $.each(e.data,function(i,obj){ 
            var list="";
            list+="<li><a href="+obj['arcurl']+">";
            list+="<div class='img'><img src="+obj['cfg_basehost']+obj['litpic']+"></div>"
            list+="<div class='txt'>";
            list+="<h5>"+obj['title']+"<span></span></h5>";
            list+="</div></a></li>"
            dom.append(list); 
            $('.my-loading').hide();
         });
             if (cb!='') {
               cb()
              }
         }
       }else{
        $('.my-loading').hide();
        $('.no-loadings').show();
        $('.jz').hide();
       }
    
    }
  })
  .fail(function() {
    console.log("error");
  })

}

把文件保存为ajax.js

然后我们是需要前台代码

<script type="teXt/javascript" src="/basic/js/ajax.js"></script>
<script type="text/javascript">
  var loadingMore = false;//增加判断是否直接加载
  var page=1;
  var typeid = "{dede:field.typeid/}";
    $(function(){
        $('.jz').click(function(event) {
            /* Act on the event */
            console.log(loadingMore);
        if(!loadingMore){
          $('.my-loading').show();
          loadMore();
        }
        });

function loadMore() {
            if (loadingMore) return;
            loadingMore = true;
            page++;
            setTimeout( //增加延迟,防止一直不间断点击
                () => {
                    this.listajax(page, 'shop', typeid, 8, () => {//shop为需要加入内容的层的id 名字 
                        loadingMore = false;
                    })
                }, 333
            )
        }

    })


</script>

加载更多点击后状态部分

  <div class="loadmore">
                        <div class="my-loading">
                          
                        </div>
                        <div class="no-loadings">
                          <div class="no-loadings-flex">
                            
                          
                            <p>没有更多内容了</p>
                            </div>
                        </div>
                    </div>


加载更多状态部分的less

.loadmore { padding: 10px 0;
  .my-loading,.no-loadings{display: none;}
}

.my-loading{width: 100%; height: 0rpx; .tc;
  .flex-block();.align-items(center);.justify-content(center);
  padding-top:24rpx;.transition(all 200ms linear);}
.loadmore.visible { height: 80rpx;}
.my-loading:after {
  content: " "; .dis-in;width: 26px;
  height: 26px;margin: 1px;border-radius: 50%;
  border: 2px solid #FFD800;border-color: #eee #efefef #FFD800 transparent;
  animation: lds-dual-ring 1.2s linear infinite;
}
@keyframes lds-dual-ring {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
.no-loadings{    
  .flex-block();.align-items(center);margin-top: 15px;
font-size: 12px; color: #999;
}
.no-loadings-flex{
  .flex-block();.align-items(center); width: 100%;
  &:after,&:before{
.flex(1);width: 100px;height: 1px; background:#ccc;content: "";
}
}
.no-loadings p{padding: 0px 6px;}

好了可以了! 


如果需要不同的模板 loadMore的时候传递前端模板方法过去

function loadMore() {
            if (loadingMore) return;
            loadingMore = true;
            page++;
            setTimeout( //增加延迟,防止一直不间断点击
                () => {
                    this.listajax(page, 'shop', typeid, 8, () => {//shop为需要加入内容的层的id 名字 
                        loadingMore = false;
                    },template)
                }, 333
            )
        }

    })

模板

function template(e,dom){
$.each(e,function(i,obj){ 
            var list="";
            list+="<li><a href="+obj['arcurl']+">";
            list+="<div class='img'><img src="+obj['cfg_basehost']+obj['litpic']+"></div>"
            list+="<div class='txt'>";
            list+="<h3>"+obj['title']+"<span></span></h3>";
            list+="</div></a></li>"
            dom.append(list); 
         });
           
}


写的好!

微信扫一扫赏大洋