如何使用rails和javascript查找并返回我的div元素?

时间:2018-12-13 18:48:59

标签: javascript jquery ruby-on-rails turbolinks

我正在尝试构建一段JavaScript,该JavaScript从网页上获取该URL,以查看地址中是否包含锚点,然后它将页面向下滚动到该锚点,我必须这样做,因为引导程序sticky-top导航阻止了我要查看的元素的视图。

我的js看起来像

findLink = function(){
  link = document.location.href
  parseLink(link)
}

parseLink = function(link) {
  if (link.split('').includes('#')) {
    post_id = link.split('#')[1];
    moveLink(post_id)
  }
}

moveLink = function(post_id){
  element = $('#+post_id').get()

}

$(document).on('turbolinks:load', findLink()) ||
$(document).on('page:load', findLink())

我的问题是,即使我尝试查找

console.log($('#my_id')) # returns jQuery.fn.init {}
console.log($('#my_id').get()) # returns an empty []

我得到两个空数组。 我不确定为什么会这样或如何解决。

1 个答案:

答案 0 :(得分:0)

我最终写了一些不太完美的JS,但它完成了工作。

document.addEventListener('turbolinks:load', function(){
  link = document.location.href
  parseLink(link)
});

parseLink = function(link) {
  if (link.split('').includes('#')) {
    post_id = link.split('#')[1];
    moveLink(post_id)
  }
}

moveLink = function(post_id){
  element = document.getElementById(post_id)
  $('html,body').animate({
    scrollTop: $(element).position().top -= 200
   });
}