【问题标题】:Unable to stop a setInterval on hidden div无法在隐藏的 div 上停止 setInterval
【发布时间】:2015-11-26 10:00:09
【问题描述】:

我有一个隐藏的 div,它在 jquery click 方法上淡入。这个 div 有一个幻灯片,它由一个简单的 setInterval 提供支持,不幸的是,它在隐藏的 div 上不断运行。当我单击以淡入 div 时,我正在努力使 setInterval 开始,并在我再次单击以隐藏它时结束。我只需要在显示 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 再次隐藏幻灯片。

【问题讨论】:

    标签: javascript jquery slideshow setinterval clearinterval


    【解决方案1】:

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

    【讨论】:

    • 传奇!像魅力一样工作。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多