Javascript removeChild函数不能与setTimeout函数一起使用

Javascript removeChild函数不能与setTimeout函数一起使用,javascript,settimeout,removechild,Javascript,Settimeout,Removechild,我正在尝试创建一个动画,该动画将按顺序显示一系列图像,但我在使用removeChild命令时遇到了问题,似乎无法在下一个图像出现之前阻止图像显示。我不能使用jQuery,因为这段代码将与Qualtrics接口,Qualtrics没有jQuery。代码如下所示,您还可以访问其中的一部分。我绝对是一个初学者,任何帮助都将不胜感激 ////Animate\\\\\ var imageLinks = ["http://i.imgur.com/iUjHm4e.jpg", "http://i.

我正在尝试创建一个动画,该动画将按顺序显示一系列图像,但我在使用removeChild命令时遇到了问题,似乎无法在下一个图像出现之前阻止图像显示。我不能使用jQuery,因为这段代码将与Qualtrics接口,Qualtrics没有jQuery。代码如下所示,您还可以访问其中的一部分。我绝对是一个初学者,任何帮助都将不胜感激

 ////Animate\\\\\


var imageLinks = ["http://i.imgur.com/iUjHm4e.jpg",
    "http://i.imgur.com/89Bh81C.jpg",
    "http://i.imgur.com/qKecE0F.jpg",
    "http://i.imgur.com/s5LzrE1.jpg",
    "http://i.imgur.com/thRmkE8.jpg",
    "http://i.imgur.com/mjfqeKv.jpg",
    "http://i.imgur.com/w9EpXNq.jpg",
    "http://i.imgur.com/b2rP5RQ.jpg",
    "http://i.imgur.com/NDLm5QQ.jpg",
    "http://i.imgur.com/7nohNKf.jpg",
    "http://i.imgur.com/4Qtz8KB.jpg",
    "http://i.imgur.com/xTwSsBe.jpg",
    "http://i.imgur.com/KwXNQjR.jpg",
    "http://i.imgur.com/5BVvvci.jpg",
    "http://i.imgur.com/bU0jnnD.jpg",
    "http://i.imgur.com/YKy6K6u.jpg",

];

function display(src) {
    var img = document.createElement("img");
    img.src = src;
    document.body.appendChild(img);
}

function remove(img) {
    document.body.removeChild(img);
}



i = 0;

function animation_loop() {
    im = display(imageLinks[i]);
    setTimeout(function () {
        i++;
        if (i < imageLinks.length) {
            animation_loop();
        }
    }, 50);
    remove(imageLinks[i]);
};


animation_loop();
///设置动画\\\\\
var imageLinks=[”http://i.imgur.com/iUjHm4e.jpg",
"http://i.imgur.com/89Bh81C.jpg",
"http://i.imgur.com/qKecE0F.jpg",
"http://i.imgur.com/s5LzrE1.jpg",
"http://i.imgur.com/thRmkE8.jpg",
"http://i.imgur.com/mjfqeKv.jpg",
"http://i.imgur.com/w9EpXNq.jpg",
"http://i.imgur.com/b2rP5RQ.jpg",
"http://i.imgur.com/NDLm5QQ.jpg",
"http://i.imgur.com/7nohNKf.jpg",
"http://i.imgur.com/4Qtz8KB.jpg",
"http://i.imgur.com/xTwSsBe.jpg",
"http://i.imgur.com/KwXNQjR.jpg",
"http://i.imgur.com/5BVvvci.jpg",
"http://i.imgur.com/bU0jnnD.jpg",
"http://i.imgur.com/YKy6K6u.jpg",
];
功能显示(src){
var img=document.createElement(“img”);
img.src=src;
文件.正文.附件(img);
}
功能移除(img){
文件.body.removeChild(img);
}
i=0;
函数动画_循环(){
im=显示(图像链接[i]);
setTimeout(函数(){
i++;
if(i
将字符串从
imageLinks
传递到
remove
方法

您需要存储在
display()
中创建的图像并将其删除。您几乎已经完成了)以下是工作代码:

function animation_loop() {
    im = display(imageLinks[i]);
    setTimeout(function () {
        i++;
        if (i < imageLinks.length) {
            animation_loop();
        }
    }, 50);
    remove(im);
};
函数动画\u循环(){
im=显示(图像链接[i]);
setTimeout(函数(){
i++;
if(i
试试这个:

                    var imageLinks=["http://i.imgur.com/iUjHm4e.jpg",
                    "http://i.imgur.com/89Bh81C.jpg",
                    "http://i.imgur.com/qKecE0F.jpg",
                    "http://i.imgur.com/s5LzrE1.jpg",
                    "http://i.imgur.com/thRmkE8.jpg",
                    "http://i.imgur.com/mjfqeKv.jpg",
                    "http://i.imgur.com/w9EpXNq.jpg",
                    "http://i.imgur.com/b2rP5RQ.jpg",
                    "http://i.imgur.com/NDLm5QQ.jpg",
                    "http://i.imgur.com/7nohNKf.jpg",
                    "http://i.imgur.com/4Qtz8KB.jpg",
                    "http://i.imgur.com/xTwSsBe.jpg",
                    "http://i.imgur.com/KwXNQjR.jpg",
                    "http://i.imgur.com/5BVvvci.jpg",
                    "http://i.imgur.com/bU0jnnD.jpg",
                    "http://i.imgur.com/YKy6K6u.jpg",
            ];
            function display(src)
            {
                    var img=document.createElement("img");
                    img.src=src;
                    document.body.appendChild(img);
                    return img;
            }
            function remove(img)
            {
                    document.body.removeChild(img);
            }
            var i=0;
            function animation_loop()
            {
                    var img=display(imageLinks[i]);
                    setTimeout(function()
                    {
                            i++;
                            if(i < imageLinks.length)
                            {
                                    animation_loop();
                                    remove(img);
                            }
                    }, 5000);
            }
            animation_loop();
var-imageLinks=[”http://i.imgur.com/iUjHm4e.jpg",
"http://i.imgur.com/89Bh81C.jpg",
"http://i.imgur.com/qKecE0F.jpg",
"http://i.imgur.com/s5LzrE1.jpg",
"http://i.imgur.com/thRmkE8.jpg",
"http://i.imgur.com/mjfqeKv.jpg",
"http://i.imgur.com/w9EpXNq.jpg",
"http://i.imgur.com/b2rP5RQ.jpg",
"http://i.imgur.com/NDLm5QQ.jpg",
"http://i.imgur.com/7nohNKf.jpg",
"http://i.imgur.com/4Qtz8KB.jpg",
"http://i.imgur.com/xTwSsBe.jpg",
"http://i.imgur.com/KwXNQjR.jpg",
"http://i.imgur.com/5BVvvci.jpg",
"http://i.imgur.com/bU0jnnD.jpg",
"http://i.imgur.com/YKy6K6u.jpg",
];
功能显示(src)
{
var img=document.createElement(“img”);
img.src=src;
文件.正文.附件(img);
返回img;
}
功能移除(img)
{
文件.body.removeChild(img);
}
var i=0;
函数动画_循环()
{
var img=显示(imageLinks[i]);
setTimeout(函数()
{
i++;
if(i

您需要在显示函数中创建DOM对象后返回该对象,以便在remove方法中使用。在重新执行animation_loop-self函数后,我执行了remove方法,以了解执行流程。

谢谢,但它似乎仍然没有删除图像,只是在其他图像的下方顺序显示每个图像。如果我在函数显示中返回img,它不会运行。。。