setInterval / clearInterval的问题

时间:2014-02-20 21:15:41

标签: javascript

我有一些我试图用于图库的代码,它从数组中获取URL然后更改页面上的图像。启动图库工作正常

var move = window.setInterval(function(){gallery_switch_script()},2000);

但是当我尝试在一个函数中清除它时,它不会清除间隔但是函数的其余部分确实有效,但它只能工作一次

function bwd(){
clearInterval(move);
var move = setInterval(function(){gallery_switch_script()},2000);
var b = i-1;
var valueBwd = array[b];
$(".galleryImg").fadeOut(1500,function(){$(".galleryImg").attr("src",valueBwd);});
$(".galleryImg").fadeIn(1500);

}

这完全没有错误。除了包含clearInterval()的快进按钮之外,这似乎是代码中唯一不想工作的部分。

var array = new Array();
array[0] = "";
array[1] = "img/gallery_1.png";
array[2] = "img/gallery_2.png";
array[3] = "";
array[4] = "";
array[5] = "";
array[6] = "";
array[7] = "";
array[8] = "";
array[9] = "";
array[10] = "";
array[11] = "";
array[12] = "";
array[13] = "";
array[14] = "";
array[15] = "";
array[16] = "";
array[17] = "";
array[18] = "";
array[19] = "";

window.onload=function(){var move = window.setInterval(function()     {gallery_switch_script()},2000);};

var i = 0;

function gallery_switch_script(){

var value = array[i]
i+=1;
$(".galleryImg").fadeOut(1500,function(){$(".galleryImg").attr("src",value);});
$(".galleryImg").fadeIn(1500);

}

function fwd(){
window.clearInterval(move);
var move = setInterval(function(){gallery_switch_script()},10000);
gallery_switch_script();
}

function bwd();
clearInterval(move);
var move = setInterval(function(){gallery_switch_script()},2000);
var b = i-1;
var valueBwd = array[b];
$(".galleryImg").fadeOut(1500,function(){$(".galleryImg").attr("src",valueBwd);});
$(".galleryImg").fadeIn(1500);
}

这是我的所有代码。

1 个答案:

答案 0 :(得分:1)

因为move是一个局部变量而不是全局变量。

window.onload=function(){var move = window.setInterval(function()     {gallery_switch_script()},2000);};

它在window.onload“scope”中定义,并且在其外部无法访问。

因此,在函数之外定义移动,它将起作用

var move;
window.onload=function(){move = window.setInterval(function()     {gallery_switch_script()},2000);};

function bwd();
    clearInterval(move);
    move = setInterval(function(){gallery_switch_script()},2000);
    var b = i-1;
    var valueBwd = array[b];
    $(".galleryImg").fadeOut(1500,function(){$(".galleryImg").attr("src",valueBwd);});
    $(".galleryImg").fadeIn(1500);
}