无限滚动跳转到页面顶部

时间:2014-04-02 06:21:22

标签: javascript jquery jquery-masonry infinite-scroll

我使用无限滚动与砌体一切正常并且正确排列。我有一个按钮,当我点击它使得div更大,并显示额外的内容。当页面最初加载时按钮工作并加载正常,但是当我向下滚动并无限加载新项目时,如果我单击按钮显示更多项目,它会跳转到屏幕顶部。

我猜我要做一些回调?我有点困惑。我该怎么办呢?

这是我使用的代码:

$(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();
}); 

  });

1 个答案:

答案 0 :(得分: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( );
});

click事件可能会传播到另一个具有空href的链接元素或将该用户返回到同一页面的链接元素,该页面通常只会将您带回到顶部。或者,您可以将e.preventDefault();e.stopPropagation();替换为return false;

很难确定在没有看到HTML的情况下确定这个问题。

如果该更改无效,您可以发布HTML吗?