. js函数将继续执行错误的值

.JS Function will continue executing, with wrong values

本文关键字:错误 执行 继续 函数 js      更新时间:2023-09-26

正如您所看到的,这实际上是一个简单的应用程序,但是代码似乎继续使用第一个IF语句,即使它不再正确/相关。

<div id="Slideshow">
   <img id="Slide" src="images/Slide01.jpg" width="600px" height="450px">  
   <button type="button" onClick="SlideShowTimer()">Click Me!</button>
</div>
<!--Closing Slideshow-->

JS

function SlideShowTimer() {
    var IMG1 = "images/Slide01.jpg";
    var IMG2 = "images/Slide02.jpg";
    var IMG3 = "images/Slide03.jpg";
    var Slide = document.getElementById('Slide').src;
    if (document.Slide === document.IMG1) {
        document.getElementById('Slide').src = "images/Slide02.jpg"; * * * //keeps executing this even once the value has actually changed to the value of 'IMG2'***  
    } else if (document.Slide === document.IMG2) {
        document.getElementById('Slide').src = "images/Slide03.jpg";
    } else if (document.Slide === document.IMG3) {
        document.getElementById('Slide').src = "images/Slide01.jpg";
    } else {
        alert("Something Went Wrong");
    }
}

这是因为

 document.getElementById('Slide').src

返回一个绝对路径。

编辑:

function SlideShowTimer() {
var IMG1 = "images/Slide01.jpg";
var IMG2 = "images/Slide02.jpg";
var IMG3 = "images/Slide03.jpg";
var Slide = document.getElementById('Slide');
if (Slide.src.indexOf(IMG1) >= 0) {
   Slide.src = "images/Slide02.jpg"; 
   alert('1');
} else if (Slide.src.indexOf(IMG2) >= 0) {
    Slide.src = "images/Slide03.jpg";
   alert('2');
} else if (Slide.src.indexOf(IMG3) >= 0) {
   alert('3');
    Slide.src = "images/Slide01.jpg";
} else {
    alert("Something Went Wrong");
}

}

试一下

if (Slide == IMG1) {
    document.getElementById('Slide').src = IMG2;
} else if (Slide == IMG2) {
    document.getElementById('Slide').src = IMG3;
} else if (Slide == IMG3) {
    document.getElementById('Slide').src = IMG1;
} else {
    alert("Something Went Wrong");
}