Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript TurboLink中的历史回溯错误,指向具有哈希的页面_Javascript_Ruby On Rails_Turbolinks - Fatal编程技术网

Javascript TurboLink中的历史回溯错误,指向具有哈希的页面

Javascript TurboLink中的历史回溯错误,指向具有哈希的页面,javascript,ruby-on-rails,turbolinks,Javascript,Ruby On Rails,Turbolinks,我对rails中的TurboLink有点恼人,我希望你们中的一些人能帮助我解决这个问题 我使用jQuery地址向我的url添加哈希,以便在出现特定哈希值时执行一些javascript 问题是Turbolinks似乎不起作用,如果我单击后退按钮(history back),history back引用了一个带有散列的URL。它根本不会改变页面内容。例如mypage.com/test2,我回到mypage.com/test1 我想做一个js修复程序,因此如果我使用历史记录回击另一个带有哈希的页面,它

我对rails中的TurboLink有点恼人,我希望你们中的一些人能帮助我解决这个问题

我使用jQuery地址向我的url添加哈希,以便在出现特定哈希值时执行一些javascript

问题是Turbolinks似乎不起作用,如果我单击后退按钮(history back),history back引用了一个带有散列的URL。它根本不会改变页面内容。例如mypage.com/test2,我回到mypage.com/test1

我想做一个js修复程序,因此如果我使用历史记录回击另一个带有哈希的页面,它应该重新加载页面以刷新内容,或者只是强制使用TurboLink手动刷新内容


提前谢谢

在没有代码的情况下,我能提供的最好信息是刷新页面的


授权

正常的HTML呈现是重新呈现整个页面,这意味着您的JS能够重新绑定到不同的元素。JS的工作方式是将事件绑定到特定元素。该元素必须位于页面(
document
/
DOM
)本身,以便JS绑定到它

TurboLink因阻止JS将事件绑定到元素而臭名昭著。由于Turbolinks在页面上保持相同的JS,因此会阻止JS绑定。相反,您需要使用TurboLink将事件绑定到DOM,并通过TurboLink进行委托,如下所示:

var ready = function(){
    //your code here
};
$(document).on("page:load ready", ready);

你能发布你的JS吗?