如何停止函数重新加载(window.reload)jquery或javascript?
问题描述:
来源如何停止函数重新加载(window.reload)jquery或javascript?
$(function reload(){
$.ajax({
.
.
.
window.setTimeout(reload, 3000);
});
});
这个函数重载AJAX页面上每3秒。
我想停止按钮(#stop)。
$('#stop').click(function){
//STOP FUNCTION
});
请让我知道如何做到这一点?
答
var c =0;
$(function reload(){
$.ajax({
.
.
.
if(c == 0)
window.setTimeout(reload, 3000);
});
});
$('#stop').click(function){
c =1;
});
答
要清除超时,首先需要由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;
});
+0
哇,这是gooe的主意!谢谢 – blankammo 2012-01-02 05:33:32
答
如果来源是你不能修改,那么你就必须做一些哈克,像重写reload()
功能:
$('#stop').click(function){
window.reload = function() {};
});
如果失败,因为reload()
不window
下,那么实际上你可以重写window.setTimeout()
,但我们强烈不推荐。
7个问题,0检查。 Next ... – zerkms 2012-01-02 05:12:41