Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.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 显示阵列中的6个(不同)图像,don';t显示重复项并每x秒重新加载一次_Javascript_Jquery - Fatal编程技术网

Javascript 显示阵列中的6个(不同)图像,don';t显示重复项并每x秒重新加载一次

Javascript 显示阵列中的6个(不同)图像,don';t显示重复项并每x秒重新加载一次,javascript,jquery,Javascript,Jquery,我一共有12张图片。我想在任何时候显示最多6个不同的图像-不显示重复。为此,我使用jQuery。我希望图像每5秒更改/旋转一次 我似乎无法让这个代码正常工作。有人能告诉我哪里出了问题吗 var-imagesArray=[ imgs/Scan1.jpeg', “../imgs/Scan2.jpeg”, “../imgs/Scan3.jpeg”, “../imgs/Scan4.jpeg”, “../imgs/Scan5.jpeg”, “../imgs/Scan6.jpeg”, “../imgs/S

我一共有12张图片。我想在任何时候显示最多6个不同的图像-不显示重复。为此,我使用jQuery。我希望图像每5秒更改/旋转一次

我似乎无法让这个代码正常工作。有人能告诉我哪里出了问题吗

var-imagesArray=[
imgs/Scan1.jpeg',
“../imgs/Scan2.jpeg”,
“../imgs/Scan3.jpeg”,
“../imgs/Scan4.jpeg”,
“../imgs/Scan5.jpeg”,
“../imgs/Scan6.jpeg”,
“../imgs/Scan7.jpeg”,
“../imgs/Scan8.jpeg”,
“../imgs/Scan9.jpeg”,
“../imgs/Scan10.jpeg”,
“../imgs/Scan11.jpeg”,
“../imgs/Scan12.jepg”,
];
var usedImages={};
var usedimagesunt=0;
函数displayImage(){
var num=Math.floor(Math.random()*(imagesArray.length));
如果(!usedImages[num]){
document.canvas.src=imagesArray[num];
usedImages[num]=true;
使用DimageScont++;
如果(UseDimageScont==imagesArray.length){
UseDimageScont=0;
usedImages={};
}
}否则{
setInterval(函数(){
$(“#豪华#img”).attr(“src”,displayImage(););
}, 5000);
}
}

正如Christian Hain在评论中指出的那样,
id
应该是唯一的,而6个
img
具有相同的
id
。在这些情况下,必须使用类

如果使用字符串
函数(displayImage())
作为属性,浏览器将查找一个名为
函数(displayImage())
的图像,并且不会将其作为Javascript进行计算,因为它不理解它是Javascript代码。您还需要在第一页加载时使用javascript行来更改它们,以设置初始值:

$(".deluxe_img").attr("src", displayImage());
为什么每次
都要设置间隔!usedImages[num]
的计算结果为
false
?这将不断生成新的间隔,因此您的代码将持续运行,而不是每5秒运行一次。您需要在
时处理此情况!usedImages[num]
通过查找不同的
num

var imageIndexes = [0,1,2,3,4,5,6,7,8,9,10,11]
function displayImage() {
    var index = Math.floor(Math.random() * (imageIndexes.length));
    var num = imageIndexes[index]

    var result = imagesArray[num];
    imageIndexes.splice(index, 1)

    if (imageIndexes.length === 0) {
        imageIndexes = [0,1,2,3,4,5,6,7,8,9,10,11]
    }
    return result
}


function changeImagesSrc() {
    $(".deluxe_img").each(function () {
        $(this).attr('src',displayImage())
    })
}

$(document).ready(function () {

    changeImagesSrc()
    setInterval(function() {
        changeImagesSrc()
    }, 5000);
})

您可能还希望动态创建这些标记,而不是硬编码它们。这将使你更容易更新图像和/或如果你改变主意,数字6更容易维护。-编辑->我将尝试使用DOM并定义一个重载间隔为5000的函数,并在“premium\u listing\u容器”中动态添加标记。您在这里有很多事情要做。首先,HTML元素ID对于每个元素都必须是唯一的。换句话说,6个id为
deluxe\u img
的元素将不起作用,因为jQuery将只查找并使用第一个元素。其次,数组中的第一项不是正确的字符串。这应该会引发javascript错误。第三,您的一些图像是
jpeg
,其他图像是
jepg
。它们可能都是
jpeg
。也请查看“帮助”部分中的“如何提问”和“MVE”。具体来说,您需要告诉我们“它不起作用”的方式。如果有错误,请留下它。否则,将你的结果与你想要的结果进行比较,并举例说明你得到了什么和你想要什么。这确实加快了我们为解决您的问题做出贡献的能力。谢谢只需单击
编辑
按钮即可添加其他信息。这有助于我们帮助您。很乐意帮助:)您能将答案标记为已接受,这样问题就可以“关闭”了吗?很抱歉造成混淆,但在我写了“谢谢”之后,它开始工作了,代码中只显示了用户ID 1-12。虽然该问题提到了一系列用户ID,但它也表示这只是出于示例/说明的目的。我花了一点时间才意识到代码并没有完全按照要求工作。因此,从逻辑上讲,我们不能接受这个答案。对不起,如果您不想接受这个答案,这不是问题,但请注意,堆栈溢出是一个帮助您解决问题的地方,而不是人们为您编写代码的地方。当然,这只是一个例子,我没有适当的数据,也没有访问整个项目的权限,我无法为您提供一个代码来复制和粘贴,而无需您至少阅读和理解:)