我使用以下代码,我得到的唯一提醒是alert(t)
。我尝试了unsafeWindow.setTimeout
,window.setTimeout
以及其他变体,包括setInterval - 没有任何效果。
$('#on').change(function () { t = setTimeout(function () { starttimer() },1000);timer_on = true;alert(t); });
function starttimer() {
alert('triggered');
if (timer_on) {
alert('timerstarted');
t = setTimeout(function () { startimer() },1000);
}
}
编辑:没有错误。脚本继续执行,t
具有正常值,只是函数永远不会运行。
答案 0 :(得分:2)
不要写那样的代码!学会爱jsBeautifier和JSLint。
您使用的是什么版本的FF和Greasemonkey?一些组合在定时器和/或事件监听器内有警报问题。
无论如何,$('#time').val ()
可能不存在或不符合您的想法。 $('#time')
是否引用<input>
?
试试这段代码:
// t and timer_on are global variables.
$('#on').change ( function () {
var timeVal = $('#time').val () || 1; //-- Account for empty and NaN
timeVal = parseInt (timeVal, 10) * 1000;
alert ('Time val = ' + timeVal);
t = setTimeout (starttimer, timeVal);
timer_on = true;
alert (t);
} );
function starttimer () {
alert ('triggered');
if (timer_on) {
alert ('timerstarted');
var timeVal = $('#time').val () || 1;
timeVal = parseInt (timeVal, 10) * 1000;
alert ('Time val = ' + timeVal);
t = setTimeout (starttimer, timeVal);
}
}