我正在尝试构建一段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 []
我得到两个空数组。 我不确定为什么会这样或如何解决。
答案 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
});
}