jQuery使用Rails检测是否在主页上

时间:2017-07-21 17:26:04

标签: javascript jquery ruby-on-rails

如何检测我目前是否在我的主页上? 例如,如果我在登录页面上,我只希望执行此JS,即:

应用程序/视图/页/ 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");
    }
  }
}

2 个答案:

答案 0 :(得分:0)

<%= javascript_include_tag "my_javascipt_file" %>

将此添加到

的底部

应用程序/视图/页/ home.html.erb

您可以查看here

或只是将脚本放在

应用程序/视图/页/ home.html.erb

使用脚本标记<script>your jquery code </script>

答案 1 :(得分:0)

如果您使用javascript,您可以通过检查turbolinks检查每个页面加载:加载事件并检查&#34;类名称&#34;由控制器和方法构建的rails自动生成的

下面是示例,例如,如果rails使用编辑方法加载后控制器

$(document).on("turbolinks:load", function() {
  if ($(".posts.edit")[0] == true) {
    return something;
  }
});

这是coffeescript样本

$(document).on "turbolinks:load", ->
  if $(".posts.edit")[0]
    # do something