无法在隐藏的div上停止setInterval

时间:2015-11-26 10:00:10

标签: javascript jquery slideshow setinterval clearinterval

我有一个隐藏的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再次隐藏幻灯片。

1 个答案:

答案 0 :(得分:0)

inter点击功能无法访问变量.close。 代码对我来说很混乱,因为你有{2}个元素上的click事件附加了2个函数。 所以我可以告诉你在使用setInterval的函数之外声明.vis1,这样你就可以在inter元素点击处理程序上清除它。