- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用 Rails 中的 Turbolinks 时遇到了一些恼人的问题,我希望你们中的一些人能帮助我解决这个问题。
我正在使用 jQuery-address 将哈希值添加到我的 url,以便在出现特定哈希值时执行一些 javascript。
问题是 Turbolinks 似乎不起作用,如果我单击后退按钮(历史返回)并且历史返回指的是带有哈希的 URL。它根本不会更改页面内容。例如。 mypage.com/test2 然后我回到 mypage.com/test1#1。
我想做一个 js 修复,所以如果我使用 history back 访问另一个带有哈希的页面,它应该重新加载页面以刷新内容或者使用 Turbolinks 强制内容手动刷新。
提前致谢!
最佳答案
我可以在没有代码的情况下提供的最好信息是 Turbolinks刷新 <body>
页面的
委派
正常的 HTML 呈现是重新呈现整个页面,这意味着您的 JS 能够重新绑定(bind)到不同的元素。 JS 的工作方式是将一个事件绑定(bind)到一个特定的元素上。该元素必须位于页面 ( document
/DOM
) 本身上,以便 JS 绑定(bind)到它。
Turbolinks 因阻止 JS 将事件绑定(bind)到元素而臭名昭著。由于 Turbolinks 在页面上保留相同的 JS,因此它阻止了对 JS 的绑定(bind)。相反,您需要使用 turbolinks event handlers将您的事件绑定(bind)到 DOM,并通过 turbolinks 进行委托(delegate),如下所示:
var ready = function(){
//your code here
};
$(document).on("page:load ready", ready);
关于javascript - turbolinks 中的历史记录错误链接到带有哈希的页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23603753/
我正在开发一个 voip 调用应用程序。我需要做的是在接到来电时将 Activity 带到前台。我在应用程序中使用 Twilio,并在收到推送消息时开始调用。 问题是我试图在接到任何电话时显示 Act
我是一名优秀的程序员,十分优秀!