我在rails上遇到了一个恼人的问题,希望你们中的一些人能帮我解决这个问题。
当出现特定的哈希值时,我使用jQuery-address将散列添加到我的url中,以便执行一些javascript。
问题是,Turbolinks似乎不起作用,如果我单击back按钮(回历史),历史回退引用带有散列的URL。它根本不改变页面内容。例如mypage.com/test2,我回到mypage.com/test1 1#1。
我想做一个js修复,所以如果我使用回历史记录使用散列访问另一个页面,它应该重新加载页面以刷新内容,或者强制使用Turbolinks手动刷新内容。
提前感谢!
发布于 2014-05-12 09:01:56
没有代码我能给出的最好的信息是吐鲁宾克刷新页面的<body>。
委托
通常的HTML呈现是重新呈现整个页面,这意味着JS能够重新绑定到不同的元素。JS的工作方式是将事件绑定到特定的元素。该元素必须位于页面(document / DOM)本身,这样JS才能绑定到它。
Turbolinks因阻止JS将事件绑定到元素而臭名昭著。由于Turbolinks在页面上保持相同的JS,因此阻止了JS的绑定。相反,您需要使用turbolinks 事件处理程序将事件绑定到DOM,并通过turbolinks委托,如下所示:
var ready = function(){
//your code here
};
$(document).on("page:load ready", ready);https://stackoverflow.com/questions/23603753
复制相似问题