javascript - 这个讨厌的按钮是双跳

标签 javascript html

出于一个重要的、未公开的原因,JavaScript 将一个按钮作为子按钮附加到每张幻灯片上。它的作用是滚动到下一张幻灯片:

<slide id="slide1" class="slide">
</slide>
<slide id="slide2" class="slide">
</slide>
<slide id="slide3" class="slide">
</slide>
<slide id="slide4" class="slide">
</slide>
<slide id="slide5" class="slide">
</slide>
<slide id="slide6" class="slide">
</slide>
<slide id="slide7" class="slide">
</slide>

这是 JavaScript:

<script type="text/javascript" language="javascript">
for(i=1;i<7;i++){
    var li = document.createElement("li");
    li.id=i;
    li.className="dav";
    li.innerHTML="^";
    li.onclick=scrolls;
    document.getElementById("slide"+i).appendChild(li);
}
function scrolls(){
    var a=++this.id;
    document.getElementById("slide"+a).scrollIntoView();
}
</script>

这是按钮第一次工作良好的问题,但在下一次单击时它会向前跳转两张幻灯片,例如:单击第一个按钮并向上滚动并再次单击后, View 将显示在第三张幻灯片上不再是第二个了。发生了什么事,我们将不胜感激,也请接受我这个讨厌的错误!最后不要使用 JQUERY

最佳答案

您已经增加了++this.id。尝试 this.id+1,因为我相当确定您不想修改 id,只需获取它并添加一个即可.

还值得注意的是 this.id 不是您应该轻易使用的东西。设置时尝试类似 this.setAttribute("data-target",'slide'+(i+1)); ,然后 document.getElementById(this.getAttribute("data- target")).scrollIntoView(); - 神奇! :D

关于javascript - 这个讨厌的按钮是双跳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36431693/

相关文章:

javascript - 如何从 API 中提取数据以供 Opera Mini 使用?

javascript - 当用户单击 "Category"时,如何让我的代码关闭下拉菜单?

html - 选择框背景图片

javascript - 具有固定标题的滚动表不起作用

html - 如何将屏幕分成 3 个面板并分别处理每个面板

javascript - 重置样式属性

javascript - "Complex Header"在当前 DataTables.net 构建中没有响应?

javascript - 添加到主屏幕菜单链接

html - 如何调整 flex 容器内的 n 个 div

jquery - 如何在表格列中居中按钮/文本?