【发布时间】:2020-11-12 09:12:54
【问题描述】:
我正在尝试使用只有 3 张图片的 jQuery 代码创建一个非常简单的幻灯片。
我使用next() 方法显示下一张图片。这是它应该如何工作的:
当您单击链接 (class="next") 时,会调用一个方法,该方法隐藏当前图像并显示下一个图像,并将 1 加到计数器 (i) 上,除非是第三张图像。然后,它隐藏当前图像并显示第一张图像(id="first")。
点击第一张或第二张图片可以正常工作,但点击第三张图片时,它只是隐藏了当前图片,但不显示第一张图片。
var a = new Array();
$("#slideShow").children().first().show();
$("#slideShow").children().first().next().hide();
$("#slideShow").children("div").last().hide();
var i = 0
$(".next").click(function() {
if (i == 2) {
$(this).parent().hide();
$("#first").show();
i = 0;
} else {
$(this).hide();
$(this).siblings().hide();
$(this).parent().next().show();
i++;
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id=slideShow>
<div id="first">
<img src="https://i.stack.imgur.com/XZ4V5.jpg">
<a class="prev">❮</a>
<a class="next">❯</a>
</div>
<div>
<img src="https://i.stack.imgur.com/7bI1Y.jpg">
<a class="prev">❮</a>
<a class="next">❯</a>
</div>
<div>
<img src="https://i.stack.imgur.com/lxthA.jpg">
<a class="prev">❮</a>
<a class="next">❯</a>
</div>
</div>
这些是我尝试过的一些方法:
- 在 jQuery 中使用
css({"display":"block"})代替show() - 使用 Javascript 语法而不是 jQuery:
document.getElementById("first").show(); - 遍历而不是使用id:
$(this).parent().parent().show;
但是这些都不起作用。
【问题讨论】:
标签: javascript html jquery slider slideshow