点击一个按钮触发一个定时器
var ftpurl = window.setInterval(function(){ftp();},2000);
当我再次点击的时候 想 window.clearInterval(ftpurl); 清掉的时候。
取消不了上一次的循环而且上一次的循环和现在的循环一起走。。
function confirm()
{
window.clearInterval(ftpurl);
function ftp(){
source = data[index];
$.ajax({
url : "xxx.action",
type:'POST',
data:{xx:xx},
dataType:"text",
success:function(datas)
{
var result = eval('('+datas+')');
var myChart = echarts.init(document.getElementById('topbing'));
option = {
tooltip : {
trigger: 'item',
formatter: "{a} <br/>{b} : {c} ({d}%)"
},
color:["#0171c0","#025d9c","#52b1f4","#cfebff","#72c1f8"] ,
series : [
{
name:'访问来源',
type:'pie',
radius : '65%',
center: ['50%', '45%'],
data:result
}
]
};
myChart.setOption(option);
}
})
}
var ftpurl= window.setInterval(function(){ftp();}, 10000);
window.onload = function(){
ftpurl;
}
}
完整代码呢?应该是ftpurl变量作用域的问题导致clearInterval访问不到,ftpurl 放到window作用域下或者改成这样
window.ftpurl = window.setInterval(function(){ftp();},2000);
window.clearInterval(window.ftpurl )
换成self.setInterval(function(){ftp();},2000); 试下
你没有清除掉,虽然有清除代码其实并没有成功
把接收定时器的变量放在最外面
var ftpurl;
$('button').on("click",function(){
if(ftpurl){
ftpurl=clearInterval(ftpurl);
}else{
ftpurl = window.setInterval(function(){ftp();},2000);
}
})