【问题标题】:Simple Javascript Gallery简单的 Javascript 库
【发布时间】:2011-11-20 15:14:45
【问题描述】:

所以我试图循环遍历这个数组并每隔几秒钟更改一次图像源。现在我有一个调用 setTimeOut 方法的 onload 事件,我认为它应该在页面加载 5 秒后更改图像,但它会立即执行。问题是什么?这是我的代码:

<html>
<head>
    <title>Ad Rotaror</title>
    <script type="text/javascript">
        var i = 0;
        var ads = new Array(4);
                  ads[0]='promo1.gif';
                  ads[1]='promo2.gif';
                  ads[2]='promo3.gif';
                  ads[3]='promo4.gif';
                  ads[4]='promo5.gif';

        function change()
        {
            if(i > 4)
                i = 0;

            document.images[0].src = ads[i];
            i++;
        }
    </script>
</head>
<body>
    <img src="promo1.gif" onload="setInterval(change(), 5000)" />
</body>
</html>

【问题讨论】:

  • 今天看了很多。你们都在同一个大学班吗?
  • 请注意:setTimeout 只会运行一次。 setInterval 将运行多次。
  • 谢谢,我将脚本编辑为 setInterval。是的,这是我遇到问题的任务。

标签: javascript html arrays dom gallery


【解决方案1】:

将“更改()”更改为“更改”。您正在立即调用该函数。

【讨论】:

  • 因为它是一个赋值,所以解释是 change 代表函数,就像写 function() {..contents of change function..}change() 如前所述,是直接调用函数。
  • 所以 SetInterval 已经期待一个函数作为它的第一个参数,所以不需要调用它?
  • @Howdy_McGee 是的,在 JavaScript 中,您可以传递对象等函数。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-12
  • 1970-01-01
  • 1970-01-01
  • 2015-06-05
  • 2014-02-12
相关资源
最近更新 更多