2011-07-28 6 views
1

이 타이머 스크립트를 만들었지 만 ti가 onclick을 시작하도록 만들 수 없습니다.이 타이머를 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> 

건너 뛰기 >> 타이머와 ID를 시작하는 버튼이 될 생각되며, 카운트 다운이 실제 카운트 다운입니다. 알림은 추가 ID입니다.

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

이 있어야한다 : 나는이 사람이

+0

을 그래서 당신이 온 클릭을 결합 할 경우 콜백? – mykhal

+0

누군가 다른 사람보다 먼저 언급하는 것이 더 좋습니다 : * arguments.callee *는 ES5 엄격 모드에서 지원되지 않습니다. 나를 귀찮게하지는 않지만 어떤 사람들은 그것에 대해 신음하는 것을 좋아합니다. :-) – RobG

답변

2

이게 뭐니? http://jsfiddle.net/JAAulde/Mnqaj/

그렇다면 buttonn 요소를 잡고 onclick을 할당하면됩니다. 음, 어디, 꽤 꼬추,의

...

+0

이것은 정확히 내가 찾고있는 것입니다! 감사합니다. 많은! – Shawn31313

0

먼저 도움을 수 있기를 바랍니다

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

둘째, 어디 당신의 타이머로 건너 뛰기 버튼을 후크 코드? 나는 당신의 질문에 그것을 볼 수 없습니다. 누락 된 경우 버튼 div에 대한 클릭 핸들러가 없으므로 아무것도 시작되지 않습니다.

셋째, 이름이 "buttonn"이고 끝에 2 개의 n이 붙는 것을 의미하는지 궁금합니다. 이것이 오타의 경우 이벤트 처리기가 왜 연결되지 않는지 설명 할 수 있습니다.

+0

나는 이것 모두를 안다. 그러나 나는 그것을 추가 할 필요가있을 때 설명이 필요하다. $ ('# buttonn')을 클릭하기 전에 click (function() {하지만 설정 한 타이머에이 값을 추가하면 작동하지 않음 – Shawn31313

+0

방금 ​​연결하는 방법을 묻는다면 많은 시간을 절약 할 수 있었겠습니까? 버튼을 클릭하십시오. 귀하의 게시물을 통해 귀하의 의견에 귀 기울 이셨다 고 생각 하셔도 작동하지 않습니다. – jfriend00

+0

예, 죄송합니다. – Shawn31313

0

당신은 숫자 리터럴을 사용하여 개체 속성을 만들면 안됩니다. 수는 그래서 더 나은 처음부터 문자열로 생성, 문자열로 변환됩니다

'20': function() { 

그 방법이이 건물의 이름에 모호함이 없습니다. 스크립트가를 해결 위의 ID 카운트 다운와 요소를 이동

document.getElementById(notifier) is null 

: 코드를 실행

, 나는 오류가 발생합니다.

타이머를 시작하려면 "onclick을"단순히 setTimer에 전화를 만드는 기능을 만들 :

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

을 다음 페이지에서 시작 :

<button onclick="startTimer()">Start timer</button> 
관련 문제