【问题标题】:Scroll bar jumps back to the top when the hide link is clicked单击隐藏链接时滚动条跳回顶部
【发布时间】:2016-10-05 07:30:00
【问题描述】:

实际上,我的索引页面中有更多的记录,每条记录都有各自的“隐藏”链接。那么问题是当我点击相应的链接时它会隐藏记录但移动到页面顶部,我该如何停止呢?

_rak361.html.erb

<%= link_to "Hide", hide_rak361_path(rak361), method: :put, class: 'stopper', style: "color:#ccc;" %>

ample.js

$( document ).ready(function() {

    $(".stopper").click(function(event) {
        event.preventDefault();
    });

});

rak361s_controller.rb

def hide
        @rak361 = Rak361.find(params[:id])
        @rak361.hide
        flash[:notice] = 'Rak361 was successfully hidden.'
        redirect_to rak361s_url    
end

我试过了,但它不适合我。

欢迎提出任何建议。

提前谢谢你。

【问题讨论】:

标签: javascript jquery ruby-on-rails ruby-on-rails-4


【解决方案1】:

那是因为它是一个完整的页面重新加载,你需要做的第一件事是使用path helpers 而不是在link_to 中提及控制器和操作,第二件事是你应该使用remote: true 选项来ajaxify要求。这是一个例子

= link_to "Hide", example_hide_path(id), method: :put, remote: true, class: 'stopper', style: "color:#ccc;"

您可以使用remote: true,也可以使用jQuery 的$.ajax() 发送ajax 请求。

希望有帮助!

【讨论】:

  • 感谢您的回复。我根据您的建议更新了我的帖子,我没有使用任何 ajax 来使用“remote: true”选项,但问题仍然存在。请指导...
  • 我只想通过单击隐藏链接来隐藏记录并保留在那里以供第二次隐藏。仅此而已。
  • 先生,等待您的回复。
  • 它正在移动到顶部,因为请求不是异步的,因此页面正在重新加载。您可以通过 Ajax 实现它来避免这种情况。我可以帮你解决这个问题,也许我们可以把这个对话转移到聊天中。让我知道你什么时候有空。
  • 我肯定希望通过 Ajax 来实现。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多