无法在隐藏 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
元素点击处理程序上清除它。
我有一个隐藏的 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
元素点击处理程序上清除它。