首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >clearInterval的问题

clearInterval的问题
EN

Stack Overflow用户
提问于 2018-11-16 18:16:46
回答 1查看 20关注 0票数 0

我在这里已经看到了很多已解决的问题,但我在js脚本中找不到一个。我需要用setIterval函数发送数组的每个值,但是当最后一个数组的值被发送时,我不能停止它。这是代码:

代码语言:javascript
复制
<input type="text" name="urldata" value="">
<button  class="button">SEND</button>


<script type="text/javascript">
    var myArray = ["DW,1,22", "AW,30,2", "DW,1,23", "DW,1,24", "DW,1,25", "DW,0,26"];

$(document).ready(function(){
    var connectionClosed = 1;

    $(".button").click(function(){
        var handle = setInterval(function () {  SEND(connectionClosed, myArray);    }, 300);        
    });


function SEND(){   

console.log("connectionClosed="+connectionClosed);

            if (typeof(myArray[0]) !== "undefined" && connectionClosed == 1) {

            connectionClosed = 0; // waiting for http://192.168.4.1:80/ server connection closed

                $.ajax({
                    method: "GET",
                    url: "http://192.168.4.1:80/",
                    data: { cmd: myArray[0]+"," },
                    complete: function(xhr, statusText){
                        myArray.shift(); //delete first value, ready for next value
                        connectionClosed = 1;
                    }
                }); 
            }
            else {
                stopinterval(handle);
                return false;

            }
}

function stopinterval(){
  clearInterval(handle); 
}

});
    </script>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-16 18:36:57

问题在于变量的作用域。您需要将变量的声明移动到clearInterval行可以引用它的位置。

代码语言:javascript
复制
$(document).ready(function(){
  var connectionClosed = 1;
  var handle; //  declare it here

  $(".button").click(function(){
    handle = setInterval(function () {  SEND(connectionClosed, myArray); }, 300);        
  });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53343340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档