我有一个使用setInterval的函数,但是在运行一次后我无法停止set setInterval,并且不知道为什么。
这是我的代码:
<script type="text/javascript" src="../front-end/js/jquery.min.js"></script>
<script type="text/javascript">
var jQuery1 = $.noConflict(true);
</script>
<script type="text/javascript" src="../front-end/js/jquery.gvChart-0.1.min.js"></script>
<script type="text/javascript">
var time = 0;
gvChartInit();
function coisa(){
time = setInterval(function() {
jQuery1(document).ready(function(){
jQuery('#chartdiv').gvChart({
chartType: 'PieChart',
gvSettings: {
vAxis: { title: 'No of Visitors' },
hAxis: { title: 'Month' },
width: 720,
height: 300
}
});
});
}, 1000);
}
</script>
<script type="text/javascript">
$(document).ready(function(){
$("#jogador").hide()
$("#selecoes").hide();
$("#jogoss").hide();
$("#selecaoList").click(function () {
$("#index").hide();
$("#selecoes").show();
coiso();
coisa();
clearInterval(time);
});
$("#tagList").click(function () {
$("#index").hide();
$("#selecoes").show();
coiso();
coisa();
clearInterval(time);
});
当我运行这个时,每隔一次打印就是一个新图表,但我希望它只打印一次图表。
答案 0 :(得分:0)
setInterval()
在循环中经过指定的时间后反复调用该函数,但setTimeout()
只会调用该函数一次,因此您需要使用setTimeout()
代替{ {1}}
setInterval()方法以指定的时间间隔(以毫秒为单位)调用函数或计算表达式。 setInterval()方法将继续调用函数,直到调用clearInterval()或窗口关闭。
setTimeout()方法在指定的毫秒数后调用函数或计算表达式。 该函数只执行一次。
答案 1 :(得分:0)
您可能想要使用的是setTimeout()
而不是setInterval()
。 setTimeout()
只会执行一次,因此您不需要在第二次执行之前依赖清除它,这听起来像是您的问题。
setTimeout(function(){alert('your code here')},1000);
答案 2 :(得分:0)
您是否尝试使用clearInterval(window.time);
而不是clearInterval(time);
之类的clearInterval?
可能那里没有识别出时间变量。此外,在定义变量时,请将其定义为:window.time = setInterval(function() {....
同时检查变量是否已定义console.log(typeof time)