Javascript jQuery使用Rails在主页上检测if
如何检测我当前是否在主页上?Javascript jQuery使用Rails在主页上检测if,javascript,jquery,ruby-on-rails,Javascript,Jquery,Ruby On Rails,如何检测我当前是否在主页上? 例如,我只希望在登录页上执行此JS,即: app/views/pages/home.html.erb 有没有一种方法可以像root_path那样在rails中编写 以下是我的Javascript: var landingPage = root_path; // What should this variable here be? function updateNavStyle() { if(landingPage.length == 0 || location
例如,我只希望在登录页上执行此JS,即: app/views/pages/home.html.erb 有没有一种方法可以像root_path那样在rails中编写 以下是我的Javascript:
var landingPage = root_path; // What should this variable here be?
function updateNavStyle() {
if(landingPage.length == 0 || location.href.toLowerCase().indexOf(landingPage.toLowerCase()) >= 0) {
var offset = $('#change_color').offset();
var scroll_start = $(document).scrollTop();
if (scroll_start > offset.top) {
// the white normal navbar
$(".navbar-add").removeClass("navbar-trans");
$(".navbar-link-text").removeClass("navbar-link-white");
} else {
// what the users sees when he lands on the page
$(".navbar-add").addClass("navbar-trans");
$(".navbar-link-text").addClass("navbar-link-white");
}
}
}
将此添加到您的页面底部
app/views/pages/home.html.erb
你可以看得更多
或者干脆把剧本放进去
app/views/pages/home.html.erb
当然,使用script标记
您的jquery代码
如果您使用javascript,您可以通过检查turbolinks:load事件来检查每个页面的加载,并检查由控制器和方法构造的rails自动生成的“类名”
下面是rails使用编辑方法加载post控制器的示例
$(document).on("turbolinks:load", function() {
if ($(".posts.edit")[0] == true) {
return something;
}
});
这是咖啡脚本的样本
$(document).on "turbolinks:load", ->
if $(".posts.edit")[0]
# do something
为什么不在登录页上只放置一个
updateNavStyle()
?这意味着该函数可以静态地存在于所有页面的资源中,但只有在登录页上才会被调用。因为我尝试过这样做,但它的工作方式与我单独编写此函数时的工作方式不同,所以我认为问题应该更多地围绕着找出为什么不起作用来展开。