我试图创建一个使用AJAX在页面之间切换的导航面板,并且可以链接到Rails 5.1应用程序中这些页面上的锚点。
根据我的阅读,以下代码应该有效,但不是。
<%= link_to @section.title, from_nav_path(@topic, anchor: @section.css_id), remote: true %>
(如果尚未明确,主题has_many
部分和部分belongs_to
主题)
我已经阅读了this stackoverflow帖子,以及这两个参考页面(api doc和mix and go)。
如果未将其设置为remote: true
,则可以通过show
操作正常运行,但我不想重新加载该页面。
目前,它确实更改为正确的页面,但它只是停留在页面的顶部,而不是跟随锚点。我缺少什么让这项工作?
我还尝试独立地联合添加一个javascript回调到要加载的部分和from_nav.js.erb
文件。一切都无济于事。
答案 0 :(得分:1)
您不能将锚选项与远程使用。锚是一段文本,标记超文本链接的开头和/或结尾。但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();