gpt4 book ai didi

第一次调用 Javascript 函数时效果不佳

转载 作者:太空宇宙 更新时间:2023-11-03 21:06:23 25 4
gpt4 key购买 nike

我主要是想在我的页面上使用这段代码: https://www.w3schools.com/w3css/tryit.asp?filename=tryw3css_slideshow_dots2

问题是我想创建那个幻灯片,但结果是当我第一次加载页面时,没有图像显示。当我点击圆圈时,会出现一个图像,一切正常。我收到以下错误:

Uncaught TypeError: Cannot read property 'style' of undefined
at showDivs (details.js:26)
at details.js:2

这是幻灯片的代码片段:

        <div class="w3-content w3-display-container" style="max-width:800px">
<img class="mySlides" src="<c:url value="/resources/pics/casa1.jpg" />" style="width:100%">
<img class="mySlides" src="<c:url value="/resources/pics/casa2.jpg" />" style="width:100%">
<img class="mySlides" src="<c:url value="/resources/pics/casa3.jpg" />" style="width:100%">
<img class="mySlides" src="<c:url value="/resources/pics/casa4.jpg" />" style="width:100%">
<div class="w3-center w3-container w3-section w3-large w3-text-white w3-display-bottommiddle" style="width:100%">
<div class="w3-left w3-hover-text-khaki" onclick="plusDivs(-1)">&#10094;</div>
<div class="w3-right w3-hover-text-khaki" onclick="plusDivs(1)">&#10095;</div>
<span class="w3-badge demo w3-border w3-transparent w3-hover-white" onclick="currentDiv(1)"></span>
<span class="w3-badge demo w3-border w3-transparent w3-hover-white" onclick="currentDiv(2)"></span>
<span class="w3-badge demo w3-border w3-transparent w3-hover-white" onclick="currentDiv(3)"></span>
<span class="w3-badge demo w3-border w3-transparent w3-hover-white" onclick="currentDiv(4)"></span>
</div>
</div>

还有我的 details.js

    var slideIndex = 1;
showDivs(slideIndex);


function plusDivs(n) {
showDivs(slideIndex += n);
}

function currentDiv(n) {
showDivs(slideIndex = n);
}

function showDivs(n) {

var i;
var x = document.getElementsByClassName("mySlides");
var dots = document.getElementsByClassName("demo");
if (n > x.length) {slideIndex = 1}
if (n < 1) {slideIndex = x.length}
for (i = 0; i < x.length; i++) {
x[i].style.display = "none";
}
for (i = 0; i < dots.length; i++) {
dots[i].className = dots[i].className.replace(" w3-white", "");
}
x[slideIndex-1].style.display = "block";
dots[slideIndex-1].className += " w3-white";
}

最佳答案

当您在这里直接调用您的脚本代码时,您的文档可能没有完全加载,因此找不到该元素。尝试在页面加载完成后运行您的代码,如下所示:

  window.addEventListener('load', function() {
var slideIndex = 1;
showDivs(slideIndex)
};

function plusDivs(n) {
showDivs(slideIndex += n);
}

function currentDiv(n) {
showDivs(slideIndex = n);
}

function showDivs(n) {

var i;
var x = document.getElementsByClassName("mySlides");
var dots = document.getElementsByClassName("demo");
if (n > x.length) {slideIndex = 1}
if (n < 1) {slideIndex = x.length}
for (i = 0; i < x.length; i++) {
x[i].style.display = "none";
}
for (i = 0; i < dots.length; i++) {
dots[i].className = dots[i].className.replace(" w3-white", "");
}
x[slideIndex-1].style.display = "block";
dots[slideIndex-1].className += " w3-white";
}

关于第一次调用 Javascript 函数时效果不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52131428/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com