我的代码:
$(function() {
$('a.startSlideshow').click(function() {
startSlideShow = window.setInterval(function() { slideSwitch() }, 1000);
});
$('a.next').click(function() {
if (startSlideShow) {
clearInterval(startSlideShow);
}
nextSlide();
});
});
我的意图:
如果用户单击 startSlideshow 链接,幻灯片函数每 1 秒执行一次。
如果用户单击下一个链接,则幻灯片功能将停止(如果已执行)。
为了能够检测到这一点,我将设置的间隔存储为变量。然而,当我检查它时:
if (startSlideShow) {
clearInterval(startSlideShow);
}
这不起作用。现在,如果我在单击“下一步”之前单击“开始幻灯片放映”链接,则我的代码可以正常工作。但是,如果幻灯片功能从未启动(即我从未首先单击该链接,而是从一开始就单击了下一个),则代码将失败。
基本上,当 startSlideshow var 尚未定义时,这会导致代码由于某种原因而中断:
if (startSlideShow) {
clearInterval(startSlideShow);
}
我确实尝试了其他方法来检查该变量是否已设置,但都失败了。怎么解决这个问题?
最佳答案
在第一个处理程序之前声明 startSlideShow
:
var startSlideShow = null;
稍后再清除:
if (startSlideShow) {
window.clearInterval(startSlideShow);
startSlideShow = null;
}
关于javascript - 如何在javascript中清除间隔?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6590671/