javascript - 一个简单的 JavaScript 代码不起作用@_@

标签 javascript

好的,事情是这样的,我为幻灯片放映编写了一个简单的代码,它可以工作,并且正如我所期望的那样,就是这样:

var slideShowImage = document.getElementById("slideShowImage");
var images = ["_Images/Image_01.jpg","_Images/Image_02.jpg","_Images/Image_03.jpg","_Images/Image_04.jpg","_Images/Image_05.jpg","_Images/Image_06.jpg","_Images/Image_07.jpg"];
var imageIndex = 0;

function changeImage (){
    slideShowImage.setAttribute ("src",images[imageIndex]);
    imageIndex++;
    if (imageIndex >= images.length){
            imageIndex = 0;
        }   
    }

setInterval (changeImage,3000);

但是由于我还在学习javaScript,我想改变逻辑以适应自己的口味,我重写了代码,但它不起作用,我不知道为什么...... 希望有人能启发我为什么它不......

var imageId = document.getElementById("slideShowImage");
var imageNumber = 1;
var imageName = "_Images/Image_0"+imageNumber+".jpg";

function changeImage (){
    imageId.setAttribute("Src",imageName);
    imageNumber++;
    if (imageNumber==7){
        imageNumber=1;
        }
    }
setInterval(changeImage,1000);

最佳答案

在第二种方法中,var imageName 被分配给一个静态值,即“_Images/Image_0”+imageNumber+“.jpg”,根据第一个答案,您需要重新计算该变量的值。

相反,您可以将 imageName 编写为返回计算值的函数

var imageName = function(){ return "_Images/Image_0"+imageNumber+".jpg"; }

并在changeImage内部调用

function changeImage (){
    imageId.setAttribute("Src",imageName());
    imageNumber++;
    if (imageNumber==7){
        imageNumber=1;
        }
    }

关于javascript - 一个简单的 JavaScript 代码不起作用@_@,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15922082/

相关文章:

javascript - 如何在点上应用渐变蒙版

javascript - 通过 Javascript 的 location.reload(true) 传递变量

javascript - 使用城邦 ruby gem 选择 onchange

javascript - 使用响应式 Bootstrap 图像网格和文本调整窗口大小

javascript - 为什么我无法将文件推送到数组中?

javascript - dxDataGrid 使用 ngResource 触发对所有类型的 Web api 的无限调用(错误 : [$rootScope:infdig] 10 $digest() iterations reached. 中止!)

javascript - 在另一页显示 'sum'

javascript - 如何使用 HTML5 中的 sessionStorage 概念在 Javascript 中打印对象数据

javascript - 如何从 javascript 中的 php 获取值?

javascript - 范围和评估说明