Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 选择阵列中的图像并继续_Javascript_Arrays_Loops - Fatal编程技术网

Javascript 选择阵列中的图像并继续

Javascript 选择阵列中的图像并继续,javascript,arrays,loops,Javascript,Arrays,Loops,第一次JavaScript程序员在这里 尝试解决此问题,以便在单击图像的相应按钮时显示该图像,然后该函数继续在数组和循环中显示另一图像 例如,如果横幅显示图像4,用户单击图像2的按钮,则横幅应显示图像2,然后旋转以显示图像3并继续循环 代码如下: var i = 0; var baners = new Array(); baners.push('banner1.jpg'); baners.push('banner2.jpg'); baners.push('banner3.jpg'); baner

第一次JavaScript程序员在这里

尝试解决此问题,以便在单击图像的相应按钮时显示该图像,然后该函数继续在数组和循环中显示另一图像

例如,如果横幅显示图像4,用户单击图像2的按钮,则横幅应显示图像2,然后旋转以显示图像3并继续循环

代码如下:

var i = 0;
var baners = new Array();
baners.push('banner1.jpg');
baners.push('banner2.jpg');
baners.push('banner3.jpg');
baners.push('banner4.jpg');
baners.push('banner5.jpg');



function swapImage(){
var img = document.getElementById("banner");
    img.src = baners[i];
    if (i<(baners.length-1)){i++;
    }else{ 
        i=0;
    }

setTimeout('swapImage()', 2000);        

}



function button1 (){
    var img = document.getElementById("banner");
    img.src = baners[0]

}
var i=0;
var baners=新数组();
bush('banner1.jpg');
bush('banner2.jpg');
bush('banner3.jpg');
bush('banner4.jpg');
bush('banner5.jpg');
函数swapImage(){
var img=document.getElementById(“banner”);
img.src=baners[i];
如果(i)
我不确定是否可以为5个按钮制作一个全局功能

是的。使用类似这样的方法:

function buttonClicked(number) {
    var img = document.getElementById("banner");
    img.src = baners[number]
    i = number; // set current loop position
}

然后从按钮1调用
buttonClicked(0)
buttonClicked(1)
从按钮2开始,依此类推。如果您想使用for循环自动将处理程序附加到按钮,请退出。

抓取按钮的索引,并将其与阵列的索引匹配。它显示选定的图像,但函数在索引中不断滚动,并且不遵循顺序。顺便说一句,应该拼写
baners
横幅
并简单使用
setInterval(swapImage,2000)
而不是每次计算一个字符串。在单击处理程序上设置
i
的值。谢谢!这正是我所需要的。它现在就像一个符咒。我还有一个问题,执行时间隔加倍。知道为什么吗?它们都在2秒工作,但按下按钮需要4秒来加载下一个i在你的
swapImage
循环中,你只是在更改图像后才更新
i
,因此在调用
按钮点击后,下一次交换将不会改变任何内容。我没有想到这一点,但实际上我想这比在用户点击后不到2秒显示横幅更方便d:-)哈哈哈!是的,间歇只是一个例子。这对我现在需要的东西很好。再次感谢你!