日期:2014-05-16  浏览次数:20338 次

关于一段js中出现多次使用setInterval的问题

有这样一个需求:

有一组数据需要展示,一共多少不限。5秒钟显示一组,整个数据显示完全后从头开始显示,即轮循。鼠标放上去后停止切换,鼠标移开后接着切换。

我用的方法是:

所有数据一次全部取出来,然后进行js分组。使用js的setInterval。这个问题一定要切记使用,非第一次使用一定要:window.clearInterval(xunhuan);处理不好的话,尤其是多次使用,不然会造成时间的累积,最后混乱。

特贴出下面一段代码:

$(".eliteRecommend").die().bind("mouseover",function() {
???????? ?//console.log("clear interval");
???????? ?clearInterval(xunhuan);
}).mouseout(function() {
???????? ?window.clearInterval(xunhuan);
???????? ?xunhuan = window.setInterval(function() {
???????? ??//console.log("interval-line-122 " + new Date());
???????? ??if(j < data.memberCFormArr.length) {
??????????? ??j += num;
??????????? ??k += 1;
??????????? ?}
??????????? ?if(j == data.memberCFormArr.length) {
??????? ???if(j % num != 0) {
??????????? ???k=0;
???????????? ??j=num;
???????????? ??//adduserIds(userIdArr);
??????????? ??}
??????????? ??t++;
??????????? ??if(t>1) {
??????????? ???k=0;
???????????? ??j=num;
???????????? ??t=0;
???????????? ??//adduserIds(userIdArr);
??????????? ??}
??????????? ?}
??????????? ?if(j > data.memberCFormArr.length) {
??????????? ??j = data.memberCFormArr.length;
??????????? ?}
??????????? ?
??????????? ?showucresumes(j, data, currentpage, k);
????????? }, 5000);
});