【问题标题】:Turbolinks causes a link with href="#" to trigger page refreshTurbolinks 导致带有 href="#" 的链接触发页面刷新
【发布时间】:2013-12-11 04:13:30
【问题描述】:

我的页面上有一个非常简单的链接。 <a href="#">My link</a>。它会导致页面刷新。当我删除“turbolinks”时,它不再导致刷新。

我过去一直使用带有哈希片段的链接。除非我很长一段时间都错过了一些非常基本的东西,否则我不明白这怎么会导致刷新。

它没有附加任何 JS 事件处理程序。

有什么想法吗?

这可能无关紧要,但我使用的是 jQuery、Twitter-Bootstrap 和 Ruby on Rails。

目前的线索:

  • 当我删除 Turbolinks 时,链接行为正常(不会导致页面刷新)。
  • 以“#”作为 URL 的链接会导致在我的应用的每个页面上重新加载。
  • 带有任何“#hasfragmenttext”的链接将导致单次刷新,然后页面的 URL 为“mypage#hasfragmenttext”,任何额外的点击都不会导致页面刷新...嗯。

【问题讨论】:

  • 你能发布生成页面的head标签的内容吗?
  • 有同样的问题,这不应该是默认行为,必须使用github.com/turbolinks/…

标签: ruby-on-rails ruby-on-rails-4 ujs turbolinks


【解决方案1】:

上述解决方案对我不起作用,但确实如此:

<a href="#" data-turbolinks="false">My link</a>

这可以在https://github.com/turbolinks/turbolinks找到

更新:此解决方案适用于 turbolinks 5,对于经典 turbolinks,请查看@wael34218 的先前答案

【讨论】:

  • 它也适用于我,它看起来更好,并且包含在官方文档中。它应该被标记为答案
  • 只是为了澄清这个原始解决方案是针对经典涡轮链接的。这适用于 turbolinks 5
【解决方案2】:

在该链接上使用data-no-turbolink 属性,错误应该消失了

<a href="#" data-no-turbolink>My link</a>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-09
    • 2015-01-14
    • 2012-10-13
    • 1970-01-01
    • 1970-01-01
    • 2016-04-30
    • 2016-09-18
    • 1970-01-01
    相关资源
    最近更新 更多