📅  最后修改于: 2023-12-03 15:38:38.504000             🧑  作者: Mango
在 jQuery 中,我们通常可以使用 setInterval()
方法来循环执行某个函数。但是,当我们需要在某个特定的时刻清除这个循环执行的函数时,我们需要知道该函数的 ID。
而如果我们并不知道 ID,应该如何清除这个循环执行的函数呢?
以下是一些方法:
在建立 setInterval()
函数时,将函数的返回值(即 ID)存储在全局变量中。这样,我们可以在需要的时候轻松地访问它并清除它。
// 全局变量
var intervalId;
$(document).ready(function() {
intervalId = setInterval(myFunction, 1000);
});
// 在需要的时候清除循环执行
function clearFunction() {
clearInterval(intervalId);
}
setInterval()
函数内部使用自调用匿名函数如果我们的函数需要一些参数,我们可以在 setInterval()
函数内部使用一个自调用匿名函数并返回我们的函数。这样,我们就可以轻松地访问该函数并在需要的时候清除它。
// 在函数内部使用自调用匿名函数
var intervalId = setInterval((function(param1, param2) {
return function() {
// 执行你的代码
};
})(param1, param2), 1000);
// 在需要的时候清除函数
clearInterval(intervalId);
data()
方法另一个避免在全局作用域中使用变量的方法是使用 jQuery 的 data()
方法。
// 存储ID
var intervalId = setInterval(function() {
// 执行你的代码
}, 1000);
// 在元素上存储ID
$('body').data('intervalId', intervalId);
// 在需要的时候清除循环执行
clearInterval($('body').data('intervalId'));
以上是在不知道 jQuery 中的 ID 的情况下清除 setInterval 的方法。根据不同的情况,我们可以选择使用不同的方法来清除循环执行的函数。