Я использую jquery / ajax, чтобы получить больше, когда просмотр на 40% прокрутке.
Вот скрипт запроса;
$(document).ready(function(){
var fetching = false;
function lastPostFunc() {
fetching = true;
$('div#loadmorebutton').html('<a>Loading...pls wait</a>');
$.post("loadmore.php?id=1&lastid="+$(".postitem:last").attr("id"),
function(data){
if (data != "") {
$(".postitem:last").after(data);
setTimeout(function(){
fetching = false;
},300);
$('div#loadmorebutton').empty();
}
});
};
$(window).scroll(function(){
var bufferzone = $(window).scrollTop() * 0.40;
if (!fetching && ($(window).scrollTop() + bufferzone > ($(document).height()- $(window).height() ) )){
lastPostFunc();
}
});
});
И загрузка большего числа div;
<div id="loadmorebutton">Loading...pls wait</div>
Все отлично работает, нокогда он достигает последнего контента или больше нет контента для загрузки, я хочу, чтобы "Loading ... pls wait" изменился на что-то вроде "Нет больше контента для загрузки".На данный момент он остается прежним "Загрузка ... пожалуйста, подождите".Что я должен делать?
NB.Следующий скрипт работает и выполняет переход от «загружать больше» к «больше не загружать контент».Причина, по которой я не использую этот сценарий, заключается в том, что он запускается только при достижении нижней части экрана, что приводит к двойной загрузке или тройной загрузке.Пробовал комбинировать коды, но все равно не работает.
$(window).scroll(function(){
if($(window).scrollTop() == $(document).height() - $(window).height()){
$('div#loadmorebutton').show();
$.ajax({url: "loadmore.php?id=01&lastid=" + $(".postitem:last").attr("id"),
success: function(html){
if(html){
$("#postswrapper").append(html);
$('div#loadmorebutton').hide();
}else{
$('div#loadmorebutton').html('<a>No more posts to show.</a>');
}
}
});
}
});