Бесконечная прокрутка переходит на верх страницы

0

Я использую бесконечный свиток с кладкой, все работает отлично и правильно строит. У меня есть кнопка, которая, когда я нажимаю, делает div больше и показывает дополнительный контент. кнопка работает и загружается нормально, когда страница изначально загружается, но когда я прокручиваю вниз и бесконечно загружает новые элементы, и если я нажму кнопку, чтобы показать больше, она переместится в верхнюю часть экрана.

Я предполагаю, что мне нужно сделать обратный вызов? Я немного смутился по этому поводу. Как мне подойти к нему?

это код im, использующий:

$(function(){

$(".fancybox").fancybox();
   var $container = $('.main_containera');
   $container.imagesLoaded(function(){
  $container.masonry({
    itemSelector: '.item1',
    columnWidth: 0
  });
});


var nextSelector = '.pagination-next a';
var origNextUrl = $(nextSelector).attr('href');
var offsetRegex = /(offset=)([0-9]+)/;
var offset = origNextUrl.match(offsetRegex)[2];


$container.infinitescroll({
  navSelector  : '.paginate',    // selector for the paged navigation 
  nextSelector : '.pagination-next a',  // selector for the NEXT link (to page 2)
  itemSelector : '.item1',     // selector for all items you'll retrieve
  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 });
      $container.masonry( 'appended', $newElems, true );

    });
  }
);


$('.comment_tr').click(function (e) {
    $(this).toggleClass('disabled');
    $(this).parent().parent().parent().find('form').slideToggle(250, function () {
        $('.main_containera').masonry();
    });
    e.preventDefault();
}); 

  });
Теги:
infinite-scroll
jquery-masonry

1 ответ

0

Попробуйте изменить

$('.comment_tr').click(function (e) {
    $(this).toggleClass('disabled');
    $(this).parent().parent().parent().find('form').slideToggle(250, function () {
        $('.main_containera').masonry();
    });
    e.preventDefault();
});

в

$('.comment_tr').click(function (e) {
    $(this).toggleClass('disabled');
    $(this).parent().parent().parent().find('form').slideToggle(250, function () {
        $('.main_containera').masonry();
    });
    e.preventDefault();
    e.stopPropagation( );
});

Событие клика может распространяться на другой элемент ссылки, который имеет пустой href или тот, который возвращает пользователя на ту же страницу, которая обычно просто возвращает вас к вершине. В качестве альтернативы вы можете заменить e.preventDefault(); и e.stopPropagation(); с return false; ,

Трудно сказать наверняка, что проблема не видна в HTML.

Не могли бы вы опубликовать HTML-код, если это изменение не работает?

  • 0
    не работал. может ли это быть из-за изменения размера div, который затем запускает каменную кладку, чтобы приспособиться и стреляет в меня вверх страницы?
  • 0
    Попробуйте закомментировать эту часть и посмотреть, останавливает ли она нежелательное поведение.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню