【问题标题】:"Uncaught TypeError: object is not a function" Error in javascriptjavascript中的“未捕获的TypeError:对象不是函数”错误
【发布时间】:2014-05-10 19:50:24
【问题描述】:

我遇到了一个小问题。我想显示幻灯片,但图像没有移动。当我在控制台中检查它时,我得到了错误

未捕获的类型错误:对象不是函数

有人可以帮帮我吗?

这是我的 javascript 代码:

        var step=1;
 var images = [
"5c.jpg",
"5s.jpg",
"a65.jpg"

];

var slideshow = document.getElementById('slideshow');

 function slide(){   
    slideshow.src = images[step];
    if(step<3){
        step++;
    }
    else
        step=1;
    setTimeout("slide()",2500); 
 }

还有我的 html 文件:

<html>
    <body>
        <img src="C:\Users\M.OAN\Desktop\Pics\Slideshow\5c.jpg" alt="images" name="slide" id="slideshow" onload="slide();"/>     
    </body>
</html>

【问题讨论】:

  • 你到底为什么有 eval 那里?
  • 你为什么使用 eval?你甚至不需要它
  • 请学习使用数组。不要使用eval
  • 感谢您的建议,但您能告诉我为什么会出现此错误:/
  • 您打算如何部署此幻灯片?

标签: javascript


【解决方案1】:

您可以使用图像路径创建数组,然后通过它进行迭代:

HTML:

<img id="slideshow" src="http://placekitten.com/50/50" alt="images" name="slide"/>

JS:

var images = [
    "http://placekitten.com/100/100",
    "http://placekitten.com/100/50",
    "http://placekitten.com/50/100"
];

// get image element
var slideshow = document.getElementById('slideshow');

// in arrays index starts from 0
var step = 0;

setInterval(function(){

    slideshow.src = images[step];

    if( step < images.length-1 ){
        step++;
    } else {
        step = 0;
    }    

}, 2500 );

Demo fiddle

顺便说一句,我建议您使用相对路径而不是绝对路径,因为您在尝试部署站点时可能会遇到问题:

"Pics/Slideshow/5c.jpg"

而不是

"C:/Users/M.OAN/Desktop/Pics/Slideshow/5c.jpg"

【讨论】:

  • @Ejay 当然不是,我只是尝试解决第一个问题,我也添加了关于源的推荐。
  • 我应该告诉你一件事,当我从 body 标签中的 onload 事件调用 slide mthod 时它工作得很好,但由于某些原因我不得不从那里删除它
  • @user3624126 试试我在上面插入的小提琴演示
  • 它可以工作,但是当我在 body 标签中使用 onload 时遇到了同样的问题,幻灯片从标题开始,但我希望图像 src 在图像标签中更改,这就是为什么我专门在 img 标签中调用 onload,因此图像将在那里更改,而不是在 header
  • @user3624126 我不确定我是否完全理解您试图解释的内容,但如果您想获取 DOM 中的特定元素,只需使用 document.getElementById('elementID') 函数即可。
【解决方案2】:

从 Fiddleing 了一下,原来错误的来源是标签的名字和函数是一样的。

【讨论】:

  • 你应该把它贴在 cmets 中。
猜你喜欢
  • 2013-04-03
  • 2016-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-01
  • 2022-11-12
  • 2014-06-20
相关资源
最近更新 更多