我使用如下的$ .post方法在页面中加载更多产品。但是据我所知
从https://api.jquery.com/jquery.post/
页面看,似乎没有办法让“加载”#39;正在加载数据。
还有其他方法可以显示loading
吗?
$(document).ready(function(){
$(window).bind('scroll',fetchMore);
});
fetchMore = function (){
var productClass = $("#content > .row > div.product-layout").prop("class");
if (( $(window).scrollTop() >= $(document).height()-$(window).height()-300 ) && (page <= total_pages)){
lastpage = (page == total_pages) ? 1 : 0;
page++;
$('#moreHolder').text('loading');
$(window).unbind('scroll',fetchMore);
$.post('index.php?route=product/productx' + _url + '&page=' + page + '&productClass=' + productClass,
function(data) {
if(data.length>10){
$(data).insertBefore($('#moreHolder'));
$(window).bind('scroll',fetchMore);
}
})
.always(function() {
$('#moreHolder').text('');
});
;
}
}
答案 0 :(得分:-1)
是的,您可以在请求开始时显示加载消息
$(document).ready(function(){
$(window).bind('scroll',fetchMore);
});
fetchMore = function (){
var productClass = $("#content > .row > div.product-layout").prop("class");
if (( $(window).scrollTop() >= $(document).height()-$(window).height()-300 ) && (page <= total_pages)){
lastpage = (page == total_pages) ? 1 : 0;
page++;
$('#moreHolder').text('loading');
$(window).unbind('scroll',fetchMore);
//Here show the message of loading...
$.post('index.php?route=product/productx' + _url + '&page=' + page + '&productClass=' + productClass,
function(data) {
if(data.length>10){
//And then here hide the message shown before
$(data).insertBefore($('#moreHolder'));
$(window).bind('scroll',fetchMore);
}
})
.always(function() {
$('#moreHolder').text('');
});
;
}
}
基本上你必须在请求开始之前显示消息,并在请求结束或失败时隐藏它
希望这会有所帮助:)