Не пишите такой код! Научитесь любить 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);
}
}