Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript清除间隔_Javascript_Jquery - Fatal编程技术网

JavaScript清除间隔

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

我想让一个div在点击按钮时变得可见,并有一个setInterval append periods来显示加载。我还想要一个按钮来清除该间隔并隐藏显示的div

这是一把小提琴

以下是代码:

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函数之外。