在我的网站上我使用了很多jQuery插件,我无法理清为什么我的页面在AJAX调用后滚动到顶部。
抱歉,无法粘贴代码,因为即使我不确定哪个插件导致了这个问题,并且有任何简单的方法可以找到为什么我的页面在AJAX调用后向上滚动。
在https://dev.ther8server.com托管的测试项目(对不起自签名SSL)
搜索布里斯班(必须等到自动完成并选择布里斯班,昆士兰,澳大利亚)
可以将日期留空
在酒店列表中,在结尾处有一个“显示更多优惠”按钮,当我点击它加载200多个酒店列表但不幸的是它向上滚动,人们需要从上往下滚动。
有没有简单的方法可以找到哪个元素或哪个插件负责此滚动?
我在Chrome Inspector和Firebug中尝试过,但找不到正确的代码。
感谢。
答案 0 :(得分:1)
在你的jquery.main.js中我可以看到这个函数。
complete: function(data, textStatus, errorThrown) {
//remove the loader and move up
$('#ajaxload_loader').hide();
$('html, body').animate({scrollTop: 0}, 'fast');
}
这一行$('html, body').animate({scrollTop: 0}, 'fast');
是罪魁祸首。
答案 1 :(得分:0)
在ajax调用之后,您是否删除/替换html内容控件(例如div或table或tr或p)然后添加新的html内容?如果是这种情况,我会说这是原因。因为它可能会降低整个网页/文档的高度。
答案 2 :(得分:0)
只是表面上检查了你的代码,发现在ajax调用后你正在设置响应如下:
$('#ajaxload_pane').html(data);
相反,您应该只使用以下新数据附加数据:
$('#ajaxload_pane').append(data);
目前看来你再次获取整个列表,ajax调用应该只返回酒店的新条目。