每秒更改属性

时间:2009-11-21 16:37:45

标签: javascript jquery

我想让图像每秒都改变一次。我在使用setInterval时遇到了麻烦。有人可以发布一个关于如何做到这一点的快速片段

这就是我想出来的。

var images = 'images/image_*.png';
for(var i = 1; i <= 5; i++){
    function changeImg(){
        var path = images.replace('*', i);
        $('img').attr('src', path);
    }
    setInterval('changeImg()', 1000);
}

3 个答案:

答案 0 :(得分:3)

在您的代码中,您调用setInterval函数5次,这实际上是不必要的。此外,由于循环将执行一次,i的值将始终为5,因此它将无法按预期工作。您可以尝试这样做:

var images = 'images/image_*.png';
var i = 1;
setInterval(function() {
    var path = images.replace('*', i);
    $('img').attr('src', path);
    i = i + 1;
    if (i == 6) i = 1;
}, 1000);

答案 1 :(得分:2)

您的循环仍在继续,无需等待。试着这样写:

var images = 'images/image_*.png',
    i      = 1;

function changeImg(){
    var path = images.replace('*', i);
    $('img').attr('src', path);
    i = (i == 5 ? 0 : i + 1);
}

window.setInterval(changeImg, 1000); 

答案 2 :(得分:-1)

var images = 'images/image_*.png';
var i = 1;
function changeImg(i){
    var path = images.replace('*', i);
    $('img').attr('src', path);
}

setInterval('changeImg('+ ( (i++)%6 ) +')', 1000);

也许是这样的?我没试过它。