Javascript 确保单击“加载更多”不会导致用户滚动到顶部

Javascript 确保单击“加载更多”不会导致用户滚动到顶部,javascript,jquery,html,drupal,drupal-7,Javascript,Jquery,Html,Drupal,Drupal 7,我对Drupal站点中的加载更多有一个问题。示例链接: 如果用户在该页面中按Load More,您将注意到该用户被带到顶部。将加载更多内容。但是,用户也会滚动到顶部。我希望用户停留在单击“加载更多”的位置。 loadmore是通过viewsloadmore()完成的,如下所示 <ul class="pager pager-load-more"> <li class="pager-next first last"> <a href="/tag/news?page=1"

我对Drupal站点中的加载更多有一个问题。示例链接:

如果用户在该页面中按Load More,您将注意到该用户被带到顶部。将加载更多内容。但是,用户也会滚动到顶部。我希望用户停留在单击“加载更多”的位置。

loadmore是通过viewsloadmore()完成的,如下所示

<ul class="pager pager-load-more">
<li class="pager-next first last">
<a href="/tag/news?page=1">Load more</a>
</li>
</ul>
那是行不通的。尝试如下:

(function($){

      if (Drupal.ajax)
         Drupal.ajax.prototype.commands.viewsScrollTop = null;

})(jQuery);
那是行不通的。尝试在下面的行注释掉。这也失败了

//$(scrollTarget).animate({scrollTop: (offset.top - 10)}, 500);

请提供帮助?

我检查了您页面上的脚本,发现您有一个自定义行为,无论发生什么,都会触发滚动到顶部

视图加载更多脚本对每个新附加的内容应用
Drupal.attachBehaviors()
。在您的情况下,当附加新项时,侧栏行为将重新附加并重新初始化:

Drupal.behaviors.sidebar = {
  attach: function (context, settings) {/*...*/},
  init: function () {
    $(window).scrollTop(1); // <- your issue here. 
    // ...
  }
};
Drupal.behaviors.sidebar={
附加:函数(上下文、设置){/*…*/},
init:函数(){

$(window).scrollTop(1);//我不知道如何在
drupal
中处理,但您可以通过获取当前滚动高度,然后滚动到相应的单元,方法如下
winsow.scrollBy(0,document.documentElement.scrollTop)
您查看模块问题队列了吗?@2pha谢谢。之前没有注意到。在您的链接后注意到了。我尝试了上面提到的所有解决方案,但没有成功。谢谢Eric。是的,这解决了问题。我就是那个作者:(我知道它在说什么bugfix bug。现在,进一步调查并确保两个bug都得到解决。Thank.Drupal始终运行
Drupal.attachBehaviors()
在页面加载和返回ajax请求时。
上下文
将根据页面加载或ajax请求返回的内容而有所不同。此
上下文
对象应用作jquery选择器中的第二个参数。我以前从未在drupal行为中见过init函数。也许可以告诉我们这段代码是什么上面的帖子正在尝试修复,我们可以帮助您以正确的方式修复。
Drupal.behaviors.sidebar = {
  attach: function (context, settings) {/*...*/},
  init: function () {
    $(window).scrollTop(1); // <- your issue here. 
    // ...
  }
};