gpt4 book ai didi

javascript - 清除间隔未捕获

转载 作者:行者123 更新时间:2023-11-28 02:27:11 24 4
gpt4 key购买 nike

我有一个按时间间隔调用的函数。然后我设置了调用该函数的时间间隔。我有一个 mouseleave/mouseenter 事件来分别清除和设置间隔。但是clearInterval不起作用,但是内部的匿名函数正在被调用:

interval = setInterval(function() { changeBackground(bgs); }, 2000);


$('section#main').mouseleave(function() {
clearInterval(interval);
alert("j");
});

$('section#main').mouseenter(function() {
var interval = setInterval(function() { changeBackground(bgs); }, 2000);
alert("n");
});

function changeBackground(bgs) {
$('#black').fadeIn(400, 'swing', function () {
var Url = "url('content/slides/" + bgs[currentBg] + "')";
$('#container').css('background-image', Url);
});

$('#black').fadeOut();

currentBg++;

if(currentBg == totalBg) {
currentBg = 0;
}
}

最佳答案

试试这个:

var interval = null;

$('section#main').mouseleave(function() {
clearInterval(interval);
alert("j");
});

$('section#main').mouseenter(function() {
interval = setInterval(function() { changeBackground(bgs); }, 2000);
alert("n");
});

您在 mouseenter 内对 interval 进行了 var'ing,因此在 mouseleave 内未定义它。

编辑

您修改了代码:

var interval = setInterval(function() { changeBackground(bgs); }, 2000);

$('section#main').mouseleave(function() {
clearInterval(interval);
alert("j");
});

$('section#main').mouseenter(function() {
interval = setInterval(function() { changeBackground(bgs); }, 2000);
alert("n");
});

function changeBackground(bgs) {
$('#black').fadeIn(400, 'swing', function () {
var Url = "url('content/slides/" + bgs[currentBg] + "')";
$('#container').css('background-image', Url);
});

$('#black').fadeOut();

currentBg++;

if(currentBg == totalBg) {
currentBg = 0;
}
}

关于javascript - 清除间隔未捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14755181/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com