JavaScript清除间隔
我想让一个div在点击按钮时变得可见,并有一个setInterval append periods来显示加载。我还想要一个按钮来清除该间隔并隐藏显示的div 这是一把小提琴 以下是代码:JavaScript清除间隔,javascript,jquery,Javascript,Jquery,我想让一个div在点击按钮时变得可见,并有一个setInterval append periods来显示加载。我还想要一个按钮来清除该间隔并隐藏显示的div 这是一把小提琴 以下是代码: function ProgressBar(){ var div; var start = function(){ var count = 0, div = $('#divNotification').show().text('Uploa
function ProgressBar(){
var div;
var start = function(){
var count = 0,
div = $('#divNotification').show().text('Uploading').css('align','center'),
originalText = div.text(),
count = 0;
var beginCount = setInterval(function(){
var newText = div.text() + '.';
div.text(newText);
count++;
if(count > 5){
div.text(originalText);
count =0;
}
console.log(count);
},500)
}
var stop = function(){
console.log('stop');
div.hide();
window.clearInterval(beginCount);
}
this.start = start;
this.stop = stop;
}
var progressBar = new ProgressBar();
$('#btnStart').click(function(){
progressBar.start();
});
$('#btnStop').click(function(){
progressBar.stop();
});
当前,当我单击btnStop时,我得到“无法读取未定义的属性隐藏”。如何使其停止间隔并隐藏div?您正在函数中设置
var beginCount
,因此该变量只能在该函数中访问
尝试在外部声明该变量,或者干脆删除var
部分
我会将它添加到var div
声明旁边
此外,如果您的div
未设置为对象,则需要用分号替换逗号,请尝试以下操作:
var count = 0;
div = $('#divNotification');
div.show().text('Uploading').css('align','center');
originalText = div.text();
count = 0;
这项工作:
我将最初的div任务分开:
div = $('#divNotification');
var count = 0;
div.show().text('Uploading editor').css('align','center');
originalText = div.text();
count = 0;
不要删除
var
,您不想使其成为全局变量。只需将声明移动到ProgressBar
范围,在div
声明旁边。@MattiasBuelens同意,只列出选项:)。由于他已经在使用ProgressBar使用start/stop方法创建对象,更好的方法是将其保存为对象的属性。使用:this.beginCount代替var beginCount,也可以从stop方法访问它。这是解决方案的一半。clearInterval
仍然不起作用,您可以通过注释div.hide()
行轻松检查这一点。clearInterval
应该可以停止圆点动画。好的,谢谢。我将beginCount声明移到start函数之外。