gpt4 book ai didi

javascript - 清除 jQuery 插件中的间隔

转载 作者:行者123 更新时间:2023-11-29 18:07:29 25 4
gpt4 key购买 nike

我有一个非常简单的插件,可以在一段文本中添加点,即

Loading.
Loading..
Loading...
Loading.

等等

这是我的代码(http://codepen.io/EightArmsHQ/pen/waGzJb?editors=001):

$.fn.dotdotdots = function(options) {

var settings = $.extend({
speed: 300,
dot_max: 3,
reset: 0,
string: '.'
}, options );

var default_text = this.text();
var target = this;
var dot_count = 0;

setInterval(function(){

var dots = '';

for(var i = settings.reset; i < dot_count; i ++){
dots += settings.string;
}

dot_count ++;
if(dot_count > settings.dot_max){
dot_count = settings.reset;
}

target.text(default_text + dots);
}, settings.speed);

return this;

};

$("#target").dotdotdots({'speed':400});

问题是过了一会儿,我想从插件外部停止插件内的 setInterval。我的直接想法是在函数内部尝试:

this.intId = setInterval(function(){

然后我可以使用类似的东西:

clearInterval($("#target").intId);

从外部停止插件做它的事情。但这并不能解决问题……谁能给我指出正确的方向?

老实说,我想知道是否需要让插件更复杂一点,并以某种方式使用 .start().stop() 函数。

最佳答案

您需要访问您的 setInterval 变量,因此将间隔分配给全局(插件内部)变量:

$.fn.dotdotdots.Interval = setInterval(...)

然后你可以清除它:

clearInterval($.fn.dotdotdots.Interval)

关于javascript - 清除 jQuery 插件中的间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30210683/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com