javascript - 清除间隔未捕获

标签 javascript jquery

我有一个按时间间隔调用的函数。 然后我设置了调用该函数的时间间隔。 我有一个 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/

相关文章:

javascript - 用于动态插入元素的 CSS

Jquery calc百分比宽度减去像素不返回 flex 列

javascript - jQuery UI draggable 在放下时有不稳定的过渡

javascript - Jquery - 为多个选择设置样式 - 我可以使用 ID 而不是 NAME 吗?

javascript - 鼠标按下时的 X 和 y 坐标

javascript - 循环遍历多维数组最内层循环

javascript - ExtJS 4 树面板项目在 Firefox 中可见,但在 Chromium 中不可见

javascript - 有没有办法以编程方式设置断点(例如,调用命名函数时)?

javascript - 如何访问路径元素的高度和宽度?

javascript - $.ajax 无法正常运行 - 返回 index.html