Javascript 存储setInterval以便稍后清除
我正在开发一个jQuery插件,它使用JavaScript间隔。但是,当再次调用插件时,参数Javascript 存储setInterval以便稍后清除,javascript,jquery-plugins,setinterval,intervals,clearinterval,Javascript,Jquery Plugins,Setinterval,Intervals,Clearinterval,我正在开发一个jQuery插件,它使用JavaScript间隔。但是,当再次调用插件时,参数正在运行为false,那么我希望清除在该特定DOM元素上调用的上一个间隔 以下是一些简短的代码: (function ($) { $.fn.examplePlugin = function (running) { return this.each(function () { if (running === false) { /
正在运行
为false
,那么我希望清除在该特定DOM元素上调用的上一个间隔
以下是一些简短的代码:
(function ($) {
$.fn.examplePlugin = function (running) {
return this.each(function () {
if (running === false) {
// Clear the previous interval assigned to this DOM element
} else {
setInterval(function () {
// Interval code
}, 50);
}
return this;
});
};
})(jQuery);
这怎么可能?我曾想过使用全局变量来存储间隔,但我真的不想这样做。我也不知道如何为一个特定的DOM元素分配一个间隔。如果您想为每个DOM元素保存间隔,那么最好使用它,这正是您想要的——在一个特定的DOM元素上设置数据
var saved = $(this).data("__examplePlugin_interval");
if (saved) { // I think you mean when it *is* running
clearInterval(saved);
$(this).removeData("__examplePlugin_interval");
} else {
var interval = setInterval(function () {
// Interval code
}, 50);
// choose a name that won't be accidentally overwritten by others
$(this).data("__examplePlugin_interval", interval);
}
非常感谢你。真是恰到好处!