loadmore.js 2.61 KB
/**
 *  商品详情  --滚动页面加载
 * @author: Lynnic
 * @date: 2015/11/25
 */
var $ = require('jquery'),
    loading = require('../../plugin/loading'),
    tip = require('../../plugin/tip');

var loadMoreUrl = $('#loadMoreUrl').val(),
    $commentsDiv = $('#goods-comments'),
    $consultsDiv = $('#goods-consults'),
    winH = $(window).height(),
    searching = false,
    end = false;

var jsonObj;

//插入评论列表底部
function insertCommentsDiv(json) {
    var html = '';
    var i;


    for (i = 0; i < json.length; i++) {
        html += '<div class="comment-item">';
        html += '<span class="user-name">' + json[i].userName + '</span>';
        html += '<span class="goods-spec">' + json[i].desc + '</span>';
        html += '<span class="goods-spec">' + json[i].content + '</span>';
        html += '<span class="goods-spec">' + json[i].time + '</span>';
    }
    $commentsDiv.append(html);
}

//插入咨询列表底部
function insertConsultsDiv(json) {
    var html = '';
    var i;


    for (i = 0; i < json.length; i++) {
        html += '<div class="consult-item"> ';
        html += '<div class="question"> ';
        html += '<span class="iconfont">&#xe639;</span> ';
        html += '<p> ';
        html += json[i].question + '<br> ';
        html += '<span class="time">' + json[i].time + '</span> ';
        html += '</p> ';
        html += '</div> ';

        html += '<div class="answer"> ';
        html += '<span class="iconfont">&#xe63c;</span> ';
        html += '<p>' + json[i].answer + '</p> ';
        html += '</div> ';
        html += '</div> ';
    }
    $consultsDiv.append(html);
}

function search() {
    if (searching || end) {
        return;
    }
    searching = true;

    loading.showLoadingMask();

    $.ajax({
        type: 'GET',
        url: loadMoreUrl,
        success: function(data) {
            if (data.length > 0) {
                jsonObj = JSON.parse(data);
                if ($commentsDiv.length > 0) {
                    insertCommentsDiv(jsonObj);
                } else if ($consultsDiv.length > 0) {
                    insertConsultsDiv(jsonObj);
                }
            }
            searching = false;
            end = true;
            loading.hideLoadingMask();
        },
        error: function() {
            tip.show('网络断开连接了~');
            searching = false;
            loading.hideLoadingMask();
        }
    });
}


function scrollHandler() {
    if (!end || $(window).scrollTop() + winH >= $(document).height() - 50) {
        search();
    }
}

//srcoll to load more
$(window).scroll(function() {
    window.requestAnimationFrame(scrollHandler);
});