我正在尝试创建一个间隔并发送请求。它将随着单击开始并随着单击停止。开始和停止工作都很棒。但是在停止间隔后,当您再次按下按钮开始间隔时,间隔会开始两次。停止后再次启动,开始3个间隔。
这是我的代码:
var running=0
var pathArray = window.location.pathname.split( '.html' );
var pathArray = pathArray.reverse();
var pathArray = pathArray .join('');
var pathArray= pathArray .split('/');
var bidnum=pathArray[3];
$(document).ready(function(){
$('body').append("<div id=\"cdjs\" style=\"position: absolute; top: 30px; background-color: gray; box-shadow: 0px 0px 0px 3px; left: 30px;\">Click to start</div>");
$('#cdjs').click(letswin);
});
function checkandbid(){
if(running==1){
$.get("http://www.bigibid.com/LiveResponder/LR.bid?_as="+bidnum, function(data){
Marray = data.split("'te':'")
time = Marray[1].split("'")
time = time[0]
$('#cdjs').html(time);
if(time < 2 && able==1){
able=0;
$('#ctl00_ContentPlaceHolder1_ibBid').click();
}else{
able=1;
}
});
}
}
function letswin(){
if(running==1){
running=0
clearInterval(IntRun);
delete IntRun;
$('#cdjs').html('Click to start');
}else if(running==0){
running++
delete IntRun;
clearInterval(IntRun);
var IntRun = setInterval(checkandbid, 300);
}
}
function bidders(){
}
这是jsFiddle
最佳答案
您的 IntRun
变量仅在 letswin
函数内有效,并且每次调用该函数时都会重置为未定义的值。
您需要将其声明移至该函数的外部,以便在调用之间记住其值。
关于javascript - 清除后间隔开始两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9412305/