无法在隐藏 div 上停止 setInterval

Unable to stop a setInterval on hidden div

我有一个隐藏的 div,它会在 jquery 单击方法时淡入。这个 div 有一个由简单的 setInterval 驱动的幻灯片,不幸的是 运行 一直在隐藏的 div 上。我正在努力让 setInterval 在我单击 fadeIn div 时开始,在我再次单击以隐藏它时结束。我只需要在显示 div 时设置间隔 运行。

这是我的:

//3d Visualisation overlay containing slideshow
$('.overlay').hide();   
$('.vis1').click(function(){
    $('.visual-1').fadeIn(function(){;
        $('.close').click(function(){
            $('.visual-1').fadeOut();
        })
    });
});
//slideshow interval
$('.slideshow').hide(); 
$('.vis1').click(function(){
    var inter = setInterval(function() { 
        $('.slideshow > div:first')
            .fadeOut(10)
            .next()
            .fadeIn(10)
            .end()
            .appendTo('.slideshow');
    },  4000);
}); 
$('.close').click(function(){
    clearInterval(inter);
});

这里的 clearInterval 也阻止了 .close div 再次隐藏幻灯片。

无法从 .close 单击函数访问变量 inter。 该代码让我很困惑,因为您有 2 个函数附加到 .vis1 元素上的单击事件。 所以我只能告诉你在使用 setInterval 的函数之外声明 inter,这样你就可以在 .close 元素点击处理程序上清除它。