我想知道每次定时器重启时如何发送消息。到目前为止,这是我的代码:
<head>
<script type="text/javascript">
var c=10;
var t;
var timer_is_on=0;
function timedCount() {
document.getElementById('txt').value = c;
c = c - 1;
if (c == 0)
c = 10;
}
function doMining() {
if (!timer_is_on) {
timer_is_on = true;
t = setInterval(function () {
timedCount();
}, 1000);
}
}
</script>
<SPAN STYLE="float:left">
<form>
<input type="button" value="Mining" onClick="doMining()">
<input type="text" id="txt">
</form>
</SPAN>
答案 0 :(得分:0)
2个简单的步骤:
以下是一个例子:
<div id='message'></div>
然后,访问该元素并附加您的消息或使用DOM遍历修改您的方法(最好使用dojo或jquery之类的javascript框架,但您也可以手动执行此操作:
if (c == 0) {
var _message = document.createTextNode("Timer has finished!");
document.getElementById('message').appendChild(_message);
c = 10;
}
另外,请勿在表单周围放置 SPAN 。试试一个“div”。 Span用于样式化内联文档元素。
编辑:我假设当你说“重新开始”时你的意思是当c = 0或计时器已经运行了10次。当它“重新开始”时也意味着当定时器重新调用该方法时(即每1秒,在这种情况下,你只需将更新代码放在函数的顶部)
答案 1 :(得分:0)
您已经在“if(c == 0)”中捕获此事件。只需添加您需要的额外代码吗?
您需要更好地定义重新开始的意义。尝试将其拉出到自己的方法中,以便您可以单独使用它。
<script type="text/javascript">
var c=10;
var t;
var timer_is_on=0;
function timedCount() {
document.getElementById('txt').value = c;
c = c - 1;
if (c == 0)
startOver();
}
function startOver() {
alert("Starting Over, Fool!");
c = 10;
clearTimeout(t);
timer_is_on=0;
doMining();
}
function doMining() {
if (!timer_is_on) {
timer_is_on = true;
t = setInterval(function () {
timedCount();
}, 1000);
}
}
</script>