📜  如何在不知道 jQuery 中的 ID 的情况下清除 setInterval?(1)

📅  最后修改于: 2023-12-03 15:38:38.504000             🧑  作者: Mango

如何在不知道 jQuery 中的 ID 的情况下清除 setInterval?

在 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);
使用 jQuery 的 data() 方法

另一个避免在全局作用域中使用变量的方法是使用 jQuery 的 data() 方法。

// 存储ID
var intervalId = setInterval(function() {
  // 执行你的代码
}, 1000);

// 在元素上存储ID
$('body').data('intervalId', intervalId);

// 在需要的时候清除循环执行
clearInterval($('body').data('intervalId'));

以上是在不知道 jQuery 中的 ID 的情况下清除 setInterval 的方法。根据不同的情况,我们可以选择使用不同的方法来清除循环执行的函数。