来源
$(function reload(){
$.ajax({
.
.
.
window.setTimeout(reload, 3000);
});
});
此功能每3秒重新加载一次ajax页面。
我想制作停止按钮(#stop)。
$('#stop').click(function){
//STOP FUNCTION
});
请让我知道怎么做?
答案 0 :(得分:3)
要清除超时,首先需要将setTimeout
函数返回的值赋给变量
var timer = setTimeout(...)
然后使用clearTimeout清除计时器;
clearTimeout(timer);
您可以查看https://developer.mozilla.org/en/DOM/window.clearTimeout以获取详细说明。
编辑:在您的情况下,您可以使用setInterval和clearInterval,或使用布尔标志来指示是否重新加载。
var toReload = true;
$(function reload(){
$.ajax({
.
.
.
if (toReload) {
window.setTimeout(reload, 3000);
}
});
});
$('#stop').click(function){
toReload = false;
});
答案 1 :(得分:1)
var c =0;
$(function reload(){
$.ajax({
.
.
.
if(c == 0)
window.setTimeout(reload, 3000);
});
});
$('#stop').click(function){
c =1;
});
答案 2 :(得分:0)
如果源代码是您无法修改的内容,那么您将不得不做一些hacky,比如覆盖reload()
函数:
$('#stop').click(function){
window.reload = function() {};
});
如果此操作失败,因为reload()
不在window
下,那么您实际上可以覆盖window.setTimeout()
,但强烈建议不要这样做。