所以我在页面底部有一个div。 button_to和link_to的以下代码可以正常工作,但是当我点击它们时它会向上滚动到页面顶部。
关于如何防止这种情况的任何想法,ajax加载很好但是在进行ajax调用时它不需要移动屏幕
<%= button_to reports_path, class: 'btn btn-info btn-sm', remote: true do %>
<i class="fa fa-calendar"></i> By Cumulative</button>
<% end %>
<%= link_to 'My Link', reports_path, remote: true %>
答案 0 :(得分:2)
这种行为属于HTML / JS(不是Rails)
的范围典型的情况是你使用旧的#
href参数,这样当你点击链接时你就不会加载任何其他页面,这基本上会告诉你的浏览器滚动到页面的顶部(像这样):
<%= link_to "test", "#", remote: true %>
当您使用特定链接时,我会猜测问题是:
- 您未正确附加收到的数据
- 您的页面上有一个锚点,点击了
醇>
我首先要确保您的链接没有链接到您网页上的任何锚点。如果您有这样的参考:#any_anchor
,您应该将其更改为其他内容,或者我们会创建一个变通方法。我认为这不是问题
其次,我会查看您从Ajax调用的数据。你提到graph
- 你是如何在页面上处理它的?如果您要在网页上添加大量元素,最终可能会产生类似于您所看到的效果
您能分享一下您期待的数据吗?以及你用来处理它的代码?
答案 1 :(得分:0)
如果它跳回到屏幕顶部,听起来就像你正在重新加载页面一样。 Mohamad是正确的,你会想要像他描述的那样阻止默认操作,但是你需要在执行ajax请求之后这样做。
试试这个:
$(document).ready(function() {
$(".btn-sm").on("ajax:success", function(e, data, status, xhr) {
e.preventDefault();
});
});