当我的页面第一次加载/assets/javascript/home.js中的代码时,会使用Bootstraps附加我的导航栏。
$('.navbar').affix({
offset: {
top: function() {
return this.bottom = $('.hero').outerHeight(true);
}
}
});
当我转到另一条路线,例如/blog
时,我不想要执行此代码,并希望我的静态CSS渲染效果很好。问题是,当我回到主路线(/
)时,JavaScript不会再次执行,我的导航栏正在使用其自然的CSS。如果我此时刷新,页面将完全重新加载,我的导航栏将正确定位。
我认为这个问题是因为turbo-links,但我对Rails没有足够的经验来解决这个问题。希望有人可以解释一下!
答案 0 :(得分:0)
如果你正在使用turbolinks,你可以这样做:
$(function() {
if (window.location.pathname === '/') {
// run your code
}
});
Turbolinks更改$(fn)(这是$(document).ready的快捷方式),在更改为其他路径后运行,因此它将在每次路径更改时运行此代码。