Javascript 如何停止一个函数使用另一个函数
我对编码很不熟悉,所以在这一点上请容忍我 我目前正在创建一个图像库,它有一个自动播放按钮功能,我已经设法创建了这个功能,但是我似乎无法找到一种方法来停止它,而不刷新页面。理想情况下,我想使用另一个单独的函数来停止它,该函数在单击第一个图像时调用它Javascript 如何停止一个函数使用另一个函数,javascript,Javascript,我对编码很不熟悉,所以在这一点上请容忍我 我目前正在创建一个图像库,它有一个自动播放按钮功能,我已经设法创建了这个功能,但是我似乎无法找到一种方法来停止它,而不刷新页面。理想情况下,我想使用另一个单独的函数来停止它,该函数在单击第一个图像时调用它 //Autoplay button// function autoPlay() { (function () { var gallery = document.getElementById('gallery'); //Iden
//Autoplay button//
function autoPlay() {
(function () {
var gallery = document.getElementById('gallery'); //Identifying image ID
var delayInSeconds = 60; // setting number of seconds to delay images
var images = ["Images/1.JPG", "Images/2.JPG", "Images/3.JPG", "Images/4.JPG", "Images/5.JPG", "Images/6.JPG", ]; // list of image names
var num = 0;
var changeImage = function () {
var len = images.length;
gallery.src = images[num++];
if (num === len) {
num = 0;
}
};
setInterval(changeImage, delayInSeconds * 50);
})();
}
document.getElementById("play").onclick = autoPlay;
//Stop button//
function stopButton() {
document.getElementById('gallery').src = 'Images/1.JPG';
}
document.getElementById("stop").onclick = stopButton;
您可以清除间隔,首先指定一个全局变量:
// your code
window.varInterval = setInterval(changeImage, delayInSeconds * 50);
// your code
function stopButton (){
clearInterval(varInterval); // this is the key
document.getElementById('gallery').src = 'Images/1.JPG';
}
祝你好运 您不能从任何地方停止执行一个函数。但如果您使用的是setInterval,则可以使用停止/清除它 完整代码:
//Autoplay button//
var intervalVar;
function autoPlay() {
(function () {
var gallery = document.getElementById('gallery'); //Identifying image ID
var delayInSeconds = 60; // setting number of seconds to delay images
var images = ["Images/1.JPG", "Images/2.JPG", "Images/3.JPG", "Images/4.JPG", "Images/5.JPG", "Images/6.JPG", ]; // list of image names
var num = 0;
var changeImage = function () {
var len = images.length;
gallery.src = images[num++];
if (num === len) {
num = 0;
}
};
intervalVar = setInterval(changeImage, delayInSeconds * 50);
})();
}
document.getElementById("play").onclick = autoPlay;
//Stop button//
function stopButton() {
clearInterval(intervalVar);
document.getElementById('gallery').src = 'Images/1.JPG';
}
document.getElementById("stop").onclick = stopButton;
我们能看一下你的HTML代码吗?我还没有读过所有的东西,但我认为是破折号;我会做你想做的。@Manu的可能副本这里没有循环可以打破。@juhana是的,你的权利啊好的,对不起,我会删除我最后的答案。我的耻辱非常感谢你!这是为了我。其实我之前也试过这个方法,只是没有正确命名。
//Autoplay button//
var intervalVar;
function autoPlay() {
(function () {
var gallery = document.getElementById('gallery'); //Identifying image ID
var delayInSeconds = 60; // setting number of seconds to delay images
var images = ["Images/1.JPG", "Images/2.JPG", "Images/3.JPG", "Images/4.JPG", "Images/5.JPG", "Images/6.JPG", ]; // list of image names
var num = 0;
var changeImage = function () {
var len = images.length;
gallery.src = images[num++];
if (num === len) {
num = 0;
}
};
intervalVar = setInterval(changeImage, delayInSeconds * 50);
})();
}
document.getElementById("play").onclick = autoPlay;
//Stop button//
function stopButton() {
clearInterval(intervalVar);
document.getElementById('gallery').src = 'Images/1.JPG';
}
document.getElementById("stop").onclick = stopButton;