JQuery Masonry бесконечный свиток не остановится - PullRequest
2 голосов
/ 12 февраля 2012

Я использую скрипт бесконечной прокрутки в jquery masonry. Пагинация следующей страницы загружается повторно. Как я могу это остановить? Когда я прокручиваю страницу каждый раз, когда содержимое пагинации добавляется несколько раз, вместо того, чтобы показывать сообщение типа «Больше содержимого не загружается».

$(function(){
    // alert($('.pin_item').length);

    var $alpha = $('#alpha');        
    $alpha.masonry({
      itemSelector: '.pin_item',
      columnWidth: 230,
      //isAnimated: true
    });

    $alpha.infinitescroll({
      navSelector  : '#page-nav',    // selector for the paged navigation 
      nextSelector : '#page-nav a',  // selector for the NEXT link (to page 2)
      itemSelector : '.pin_item',     // selector for all items you'll retrieve
      bufferPx     : 50,
      loading: {
          finishedMsg: 'No more pages to load.',
          img: 'http://i.imgur.com/6RMhx.gif'
      }
    },
    // trigger Masonry as a callback
    function( newElements ) {
        // hide new items while they are loading
        var $newElems = $( newElements ).css({ opacity: 0 });
        // ensure that images load before adding to masonry layout
        $newElems.imagesLoaded(function(){
          // show elems now they're ready
          $newElems.animate({ opacity: 1 });
          $alpha.masonry( 'appended', $newElems, true ); 
        });
    });
});

Ответы [ 3 ]

1 голос
/ 23 марта 2012

Я столкнулся с той же проблемой.Это проблема с вашей 404 - страница не найдена.Большинство CMS будут возвращать последний действительный разбитый на страницы контент, когда на нем закончатся страницы.Вам нужно настроить свой бэкэнд, чтобы он выдавал 404, когда ссылка «следующая страница» вызывает страницу, которая не существует.

Чтобы подтвердить, что это ваша проблема, попробуйте изменить номер в вашей ссылке,т. е. если у вас есть 5 страниц, а пятая - www.example.com/category/page?id=5, попробуйте перейти на www.example.com/category/page?id=99.Он должен заполняться тем же контентом, что и ваша последняя действительная страница (в данном примере - страница 5)

Какую CMS вы используете?

0 голосов
/ 14 мая 2012

вот простой пример, который я использовал в своем коде .. я устанавливаю глобальные переменные и на основании этого я нахожу, загружены ли мои данные полностью или нет .. если я получаю данные Null, это означает, что все содержимое загружено, и я устанавливаю переменную stop load как 1.

предположим, DOM имеет форму d ..

<div class="results_list">
  <ul id="divid">
    <li class="results">data...</li>
    <li class="results">data...</li>
  </ul>
</div>
<script>
  $(document).ready(function () {
    window.load_start = 0;
    window.load_stop = 0;
    $(".results_list").scroll(function(){
      if(window.load_stop != 1) {
        if($('.results').hasClass('last')) {
            $('.results').removeClass('last');
        }
        window.load_start += 40; 
        //40.. to load items from 40.. if u hav loaded 40 items a time before..
        $.ajax({
            url:"/url.php",
            data:"action=params+"&lazyload=1&start_load="+window.load_start,
            method:"GET",
            success: function(data) {
                data = $.trim(data);
                //data is in the form of html.. <li class="results">hi load item from - start_load i.e., passed in params by ajax.. above </li>
                if(data == undefined || data == '') {
                    window.load_stop = 1;
                    return false;
                }
                $('#divid').append(data);
            }
        });
      }
    });
  });
</script>
//u can add a condition to send ajax call(load items) only on scrolling down the div.
0 голосов
/ 12 февраля 2012

Скрипт бесконечной прокрутки Masonry загружает страницы в папке страниц вашего корня.Итак, если вы хотите просто загрузить еще одну страницу, просто удалите другие html-страницы в этой папке.Название папки: страницы.Название страниц: 2.html, 3.html, 4.html, ....

Итак, удалите страницы (3.html, 4.html и, если вы нашли больше, просто удалите их)сохранить страницу (2.html).

Наслаждайтесь.

...