Показать сообщение отдельно
  #4 (permalink)  
Старый 06.06.2020, 04:12
Интересующийся
Отправить личное сообщение для begovik Посмотреть профиль Найти все сообщения от begovik
 
Регистрация: 09.02.2019
Сообщений: 22

Ужас, никак не выходит, я уже всю голову об стену разбил!
Подскажите пожалуйста, кто знает как сделать, чтоб корректно заработало.
При прокрутке до низа должна подгружаться партия товаров, а они подгружаются все, потому что происходит несколько обращений, хотя флаг (busy) на время выполнения обращения к серверу установлен.
Выкладываю полностью функцию:
$(document).ready(function(){
    if ($(".main-container").hasClass("catalog-page")) {
        let  scrollFrom = 0, busy = false, category;
        $(window).scroll(function(){
        	if ( $(window).scrollTop() > scrollFrom ) {

	        	$('#toTop').html($(window).scrollTop() + $(window).height()+'\r\n'+$(document).height());
	            if ($(document).height() - 60 <= $(window).scrollTop() + $(window).height() && !busy) {
	                category = $('.catalog h1').text();
	                $.ajax({
	                    url: "ajax.php",
	                    type: "post",
	                    data: {"showmore": category},
	                    dataType: "html",
	                    beforeSend: function () { busy = true; }
	                }).done(function (data) {
	                	console.log(data);
	                	console.log($('.no-products').length);
	                    if (data != 0 || data != '0') {
	                        $("#main-catalog").show(500, function() {
	                            $("#main-catalog").append(data);
	                        });
	                    } else if (!$('.no-products').length) {
	                        $("#main-catalog").show(500, function() {
	                            $("#main-catalog").append('<div class="col-12 no-products"> <h5 class="endoc">Нет товаров для показа.</h5> </div>');
	                        });
	                    }
	                });
	                busy = false;
	            }
	            // console.log(flag);

	        }scrollFrom = $(window).scrollTop();
        });
    }
});
Ответить с цитированием