代码之家  ›  专栏  ›  技术社区  ›  Martin

如何在rails中使用带有锚的ajax链接

  •  1
  • Martin  · 技术社区  · 6 年前

    我正在尝试创建一个使用Ajax在页面之间切换的导航面板,并可以在Rails 5.1应用程序中链接到那些页面上的锚。

    根据我所读的,下面的代码 应该 工作,但没有。

    <%= link_to @section.title, from_nav_path(@topic, anchor: @section.css_id), remote: true %>
    

    (如果还不清楚,主题 has_many 截面,和截面 belongs_to 话题)

    我已经看完了, this stackoverflow post以及这两个参考页( api doc mix and go )

    当它不是设置为 remote: true 它通过 show 动作,但我不想重新加载页面。

    当前,它确实会更改为正确的页面,但它只是停留在页面的顶部,而不是跟随锚定。我错过了什么让这工作?

    我还尝试独立地、联合地向要加载的部分和 from_nav.js.erb 文件。一切都无济于事。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Artem Dorodovskyi    6 年前

    不能使用遥控器使用锚选项。锚定是标记超文本链接的开始和/或结束的文本。但是 remote 是Rails中添加到标记的辅助方法 data-remote="true" 属性,然后Rails知道需要发送XHR请求。锚不处理XHR请求。因此,您可以在 from_nav.js.erb scroll to the element

    var elmnt = document.getElementById("<%= @section.css_id %>");
    elmnt.scrollIntoView();