例如,如果我要按照以下方式格式化我的代码
<script type="text/javascript">
var timeout;
function auto() {
$.ajax({
url: "functions/ajax.php",
data: "func=auto",
type: "GET",
dataType: "json",
success: function(data){
$.each(data.search, function (i, v) {
console.log('Success ' + v);
});
},
error: function (jqXHR, textStatus, errorThrown){
console.log('Error ' + jqXHR);
}
});
}
function start() {
timeout = setTimeout('auto()', 2000);
}
function stop(){
clearTimeout(timeout);
}
</script>
我的 var timeout
不是由值定义的,这有关系吗?由于实际超时甚至没有处理,它运行函数 auto()
一次,然后停止
最佳答案
首先,不要在 setTimeout 中使用引号(我不确定但我相信调用 eval()
),只需通过引用传入函数:setTimeout(自动, 2000)
;
其次,JavaScript 是一种动态类型语言,这意味着变量没有固定类型,它们可以根据情况而改变,因此您的代码是完全有效的。
最后,如果您不打算在计时期间中止超时,则无需清除它,因为它会在执行后消失。
关于javascript - 使用 javascript timeOut() 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15370038/