导航栏,其链接在单击时会滚动到特定元素

时间:2019-03-18 14:06:25

标签: javascript

<ul id='nav'>
<script>
var head={{ head | safe }};
for(let key in head){
var str="<li><a id='1' href='#' onclick='MyFunction(" + key +");'>"+ key +" 
</a></li>"; 
document.getElementById('nav').innerHTML += str;
}
</script>
</ul>
<script>
function MyFunction(key){
console.log(key)
var vv=document.getElementById(key);
vv.scrollIntoView()
vv.scrollIntoView();
}
</script>

基本上我正在尝试制作一个导航栏,当单击该导航栏时,它将导航用户到给定的div元素,因此,如果div的键与通过功能传递给它的链接相匹配,则它将滚动到特定的div元素。

我得到的错误是参数列表后的Uncaught SyntaxError:缺少

1 个答案:

答案 0 :(得分:1)

您的代码段似乎包含服务器端模板(osgi.bundles=plugins/* )。

您要的内容只能使用HTML来完成。 因此,如果您正在使用服务器端模板,则可以像这样渲染它。 但是,要点是,即使您在浏览器中使用Javascript渲染它,​​也仍然不需要使用{{ head | safe }}。如果您有一个scrollIntoView()元素,其中有一个<a>,其中href="#id"是页面上另一个元素的元素ID,则浏览器将在此处滚动。

id
.spacer {
  height: 300px;
  background-color: black;
}