2016-05-07 48 views
0

我有一个JavaScript循环,每x秒更改一个指定标记的图像,但是当我修改它时只会在单击按钮时运行,它什么也不做。使用按钮和javascript更改html img标记中的图像

的JavaScript代码:

<script type="text/javascript"> 
    var step = 1 
    var image1 = new Image() 
    image1.src = "img1.jpg" 
    var image2 = new Image() 
    image2.src = "img2.jpg" 
    var image3 = new Image() 
    image3.src = "img3.jpg" 
    function slideit() { 
     if (!document.images) return 

     document.images.slide.src=eval("images"+step+".src") 

     if (step < 3) 
      step++ 
     else 
      step=1 
    } 

    //--> 
</script> 

按钮代码: <input type="button" name="btnnext" value="Next Picture" onclick="slideit" />

我试图改变到onclick="slideit()"但指出

“未捕获的ReferenceError:images1没有定义”

我不知道从哪里去,任何帮助将不胜感激。

+1

因为你的变量名称是image1 image2等,没有's' –

+1

你的slideIt函数需要工作,没有理由使用eval。如果src始终为“img”+ step +“.jpg”,则可以使用此模式,而不是为每个人创建一个新的Dom元素,只抓取src – Damon

回答

0
  1. 应该onclick='slideit()'

  2. 你得到Uncaught ReferenceError: images1 is not defined的原因是因为它试图eval('images1.src')和(我不认为)有这样在你的代码window.images1window.images2window.images3变量。

你可能就要什么是定义srcarray一个s,然后拿到srcsArray[step]并使用它作为新的src为您document.images.slide

正如@帕特里克埃文斯说,但你可以通过改变你的evaleval('image' + step + '.src')来修复它。

我希望这会有所帮助。

+0

谢谢,将“图像”更改为图像修复了它!怪异的,因为这是当我循环它时破坏了代码。 对于其他部分,我将使用数组,因为看起来更稳定。 再次感谢! –