如何让这个计时器启动onclick

时间:2011-07-28 23:10:35

标签: javascript timer

我制作了这个计时器脚本,但我似乎无法做到这一点,所以我开始onclick。

以下是我的全部代码:

<script type="text/javascript">
function display( notifier, str ) {
  document.getElementById(notifier).innerHTML = str;
}

function toMinuteAndSecond( x ) {
  return Math.floor(x/60) + ":" + x%60;
}

function setTimer( remain, actions ) {
  (function countdown() {
    display("countdown", toMinuteAndSecond(remain));actions[remain] && actions[remain]();
    (remain -= 1) >= 0 && setTimeout(arguments.callee, 1000);
  })();
}

setTimer(20, {
               20: function () { 
                    display("notifier", "seconds"); 
               },
               1: function () { 
                    display("notifier", "second");
               },

               0: function () { 
                    display("notifier", "seconds");
               }
             }
);
</script>

<!--Start Redirect Countdown-->
<div id="redirect_box" style="display:block;">
Redirecting in <span id="countdown"></span> <span id="notifier"></span>
</div>
<!--End Redirect Countdown-->

<div id="buttonn">Skip >></div>

跳过&gt;&gt;假设是启动计时器和ID的按钮,倒计时是实际的倒计时。并且,通知程序只是一个额外的ID。 我希望有人可以提供帮助

3 个答案:

答案 0 :(得分:2)

这就是你要追求的吗? http://jsfiddle.net/JAAulde/Mnqaj/

如果是这样,您只需抓住buttonn元素并为其指定一个onclick。

那是,嗯,非常有点......

答案 1 :(得分:0)

首先,这个:

<div id="buttonn">Skip >></div>

应该是这样的:

<div id="buttonn">Skip &gt;&gt;</div>

其次,将Skip按钮连接到计时器的代码在哪里?我在你的问题中没有看到它。如果它丢失了,那么按钮div就没有单击处理程序,所以这就是为什么没有开始的原因。

第三,我也想知道你的名字是"buttonn",最后有两个n?如果这是一个错字,它也可以解释为什么你的事件处理程序没有被连接起来。

答案 2 :(得分:0)

您不应使用数字文字创建对象属性。该数字将转换为字符串,因此最好先将它们创建为字符串:

   '20': function () { 

这样,财产名称就没有歧义了。

运行代码,我收到错误:

document.getElementById(notifier) is null

在脚本上方移动id为倒计时的元素可修复该问题。

要启动计时器“onclick”,只需创建一个调用setTimer的函数:

function startTimer() {
    setTimer(
        /* setTimer code */
    );
}

然后从页面开始:

<button onclick="startTimer()">Start timer</button>