Rails - 渲染新部分时,强制窗口滚动位置到顶部

时间:2018-05-31 23:07:44

标签: javascript ruby-on-rails ruby

我有一个rails应用程序,我通过渲染部分来动态更改内容

<% content_for(:content) do -%>
    <%= render partial: "registrations/partials/#{@current_user.patient_metadata.registration_step}" %>
<% end -%>

提交表单后,部分内容会发生变化,该表单位于部分内容中。

问题在于,当渲染新的局部时,滚动位置仍然是一半,在完成表格后它位于上一部分。

我尝试过添加:

$(document).ready(function() {
    $(window).scrollTop(0)
})

并测试它在页面刷新后触发,但在渲染新部分时滚动位置仍然不在顶部。

如何确保在渲染新部分时,滚动位置会重新设置在顶部?

1 个答案:

答案 0 :(得分:0)

如果通过ajax call使用

进行更改
$.ajax({
   url: url,
   //other datas
   success: function(html){
      // Your other codes
      $(window).scrollTop(0);
   }
});

如果是通过服务器调用

$(window).load(function(){
   $(window).scrollTop(0);
}