循环遍历列表并根据id调用函数

时间:2012-01-31 06:07:25

标签: javascript jquery

我有一个项目清单:

<ul>
<li><a href="#" id="Viewer1">click</a></li>
<li><a href="#" id="Viewer2">click</a></li>
<li><a href="#" id="Viewer3">click</a></li>
<li><a href="#" id="Viewer4">click</a></li>
<li><a href="#" id="Viewer5">click</a></li>
</ul>

每个ID附加了各种功能:

$j('#Viewer1').click(viewer1);
function viewer1() {
some code...
return false;
}
$j('#Viewer2').click(viewer2);
some code...
return false;
}
$j('#Viewer3').click(viewer3);
function viewer3() {
some code...
return false;
}
$j('#Viewer4').click(viewer4);
function viewer4() {
some code...
return false;
}
$j('#Viewer5').click(viewer5);
function viewer5() {
some code...
return false;
}

我想要做的是使用jQuery循环每个id并在特定的时间间隔内调用适当的函数。

首先,调用Viewer1(),比如说4秒,然后调用Viewer2(),依此类推---循环回Viewer1()并重新开始。我希望这是有道理的。

感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用setInterval

var interval, lastCalled = $j('#Viewer1').parent().siblings().last().find('a');

function doStuff () {

    var next = lastCalled.parent().next().find('a');
    if (!next.length) {
        next = lastCalled.parent().siblings().eq(0).find('a');
    }
    //console.log(lastCalled,next);
    next.click();
    lastCalled = next;

}

interval = setInterval(doStuff,4000);
doStuff();

编辑:这不完全是我想的,我想,它是由元素的位置来做的。如果这是一个严格的要求,将其更改为ID并不会太难。