0

我是真正的 JS 菜鸟,我的 HTML 正文中有这段代码:

  var secDuration = 5;
  var image = 1;
  var maxImages = 4;
  var slider = document.getElementById('slider');

 function changeImage(requiredImage) {


    if (!requiredImage && requiredImage != 0){
      if(image < maxImages){
        image++;
      }
      else{
        image = 1;
      }
    }
    else{ 
      if(requiredImage > maxImages){
        image = 1;
      }
      else if(requiredImage < 1){ 
        image = maxImages;
      }
      else{
        image = requiredImage;
      }
    }
    slider.className = "image"+image;

    clearTimeout(timeout)
  }

  function nextImage(){
    changeImage(image+1);
  }
  function prevImage(){
    changeImage(image-1);
  }

  changeImage(1);

问题是当我将它粘贴到我正确连接到我的 HTML 的 js 文件中时,脚本不再工作。我尝试了几种解决方案,但我可能遗漏了一些东西。帮助将不胜感激。

提前致谢。

4

1 回答 1

0

JavaScript 文件的有效嵌入是:

<html>
<head>
    ...
    <script type="text/javascript" src="/path/to/script.js"></script>
</head>
<body>
    ...
</body>
</html>

确保你以同样的方式完成。

然后,当页面完全加载时,您必须使用 HTML 页面中的元素,因此请像document.getElementByIdinwindow.onload方法那样移动语句:

window.onload = function() {
    slider = document.getElementById('slider');
};

因此,您更新的脚本应如下所示:

var image = 1;
var maxImages = 4;
var slider;

function changeImage(requiredImage) {
    if (!requiredImage && requiredImage != 0) {
        if (image < maxImages) {
            image++;
        }
        else {
            image = 1;
        }
    }
    else {
        if (requiredImage > maxImages) {
            image = 1;
        }
        else if (requiredImage < 1) {
            image = maxImages;
        }
        else {
            image = requiredImage;
        }
    }
    slider.className = "image" + image;

    clearTimeout(timeout)
}

function nextImage() {
    changeImage(image + 1);
}

function prevImage() {
    changeImage(image - 1);
}

window.onload = function() {
    slider = document.getElementById('slider');
    changeImage(1);
};​
于 2012-05-05T15:03:46.807 回答