2011-08-03 3 views
0

나는 두 개의 타이머가있는 것처럼 다음 시나리오를 고수했다. 사용자가 로그인하고 그가 어떤 작업을 수행한다면 그는 작업 완료를위한 예상 시간을 언급해야합니다. 예상 시간이 언급되고 작업이 내 응용 프로그램에서 시작되면 자바 스크립트 인 카운트 다운 타이머가 실행되고 첫 번째 타이머가 00 : 00 : 00 : 00 초에 오면 마침내 00 : 00 : 00 : 00으로 감소합니다 타이머는 사용자가 지정한 예상 시간의 끝에서 증가하는 것처럼 시작됩니다. reload.location (true)을 사용했는데 타이머 1이 00 : 00 : 00 : 00이되면 내 페이지가 한 번 새로 고쳐지고 두 번째 타이머가 표시됩니다. 하지만 페이지를 새로 고치지 않고 두 번째 타이머를로드하려고합니다. 참조를 위해 응용 프로그램에서 코드를 붙여 넣습니다. 저를 도와주세요 페이지를 새로 고치지 않고 두 번째 자바 스크립트를 호출하는 방법입니다. 내 show.rhtml에서 페이지를 새로 고치지 않고 두 개의 다른 자바 스크립트를 호출하는 방법은 무엇입니까?

: 나는 다음과 같은 코드 당신은 내가 하나가 _countdown_timer 두 개의 부분 지문을 렌더링하고있어 _exceeded_countdown_timer.In 코드 나 '파셜에 관한 위의 코드에서 볼 수 있듯이

<%# Added by RE4 - Countdown Timer %> 

    <% if (User.current == @issue.assigned_to) || User.current.admin? %> 

     <h3><%= "Time Left" %></h3> 

     <%= javascript_include_tag('timer.js') %> 

     <%= render :partial => "issues/countdown_timer", :locals => {:issue => @issue} %> 

    <% end %> 

    <div style="font-size: 30px;"> 

     <div id="countdown_timer"></div> 

    </div> 

    <%# Countdown timer end %> 



<%# Countdown Timer for exceeded time %> 

    <% if (User.current == @issue.assigned_to) || User.current.admin? %> 

     <h3><%= "Exceeding Time" %></h3> 

      <%= javascript_include_tag('timer_two.js') %> 

      <%= render :partial => "issues/exceeded_countdown_timer", :locals => {:issue => @issue} %> 

<% end %> 

    <div style="font-size: 30px; color: red;"> 

     <div id="exceeded_countdown_timer"></div> 

    </div> 


end 

를 작성했습니다 m 일, 시간, 분, 초를 산출하고, 2 개 개의 타이머에 _countdown_timer.rhtml

에 값을 전달 : _exceeded_cou 동일한 방식

<script> 

    window.onload = init; 

    function init() 

    { 

    timer.init(@days,@hours,@minutes, @seconds,'countdown_timer'); 

    } 

    </script> 

ntdown_timer.rhtml

지속적으로 나는 일, 시간, 분, 초 값을 전달하고있어 모든 초 동안 모두 파셜에서 위의 코드에서
<script type="text/javascript"> 

    window.onload = init2; 

    function init2() 

    { 

    timer_two.init(@days,@hours,@minutes,@seconds,'exceeded_countdown_timer'); 

    } 

    </script> 

내 타이머가 작동하도록 심지어 우리는 페이지를 새로 고칩니다. 쇼 페이지에서이 두 부분을 호출합니다.이 부분은 차례대로 조건에 따라 타이머를 호출합니다. 2 개 개의 타이머와 관련된 코드는 내가 페이지가 갱신됩니다 location.reload(true)를 호출하고있어 값이 제로가되는 경우는 모두 timer_one.js

를 볼 수

if(timer.hours == 0) 

{ 

    if(timer.days == 0) 

    { 

     location.reload(true) 

     clearInterval(timer.samay); 

     timerComplete(this.elm); 

     return; 

    } 

    else 

    { 

    timer.seconds=60; 

    timer.minutes=59; 

    timer.hours=23; 

    timer.days--; 

    } 

} 

그래서 Timer_one.js 되도록 초 타이머가 표시됩니다. 그러나 나는 이런 일이 일어나길 원하지 않는다. 첫 번째 타이머가 00 : 00 : 00 : 00이되면 두 번째 타이머가 페이지를 새로 고치지 않고 자동으로 시작됩니다.

도와주세요. 모든 종류의 도움을 환영합니다.

+0

처음에는 정확한 정보를 추가 했으므로 내 질문이 불완전하게 제출되었습니다. 한번보세요. 불편을 드려 죄송합니다. – Sam

답변

0

시작 시간과 예상 시간을 얻는 것이 더 쉬울 것이고, 언제든지 왼쪽 또는 지나친 시간을 계산할 수 있습니다.

그런 다음 0에 도달 할 때까지 남은 시간을 표시하는 타이머가 하나만 필요하며 시간 초과 표시도 필요합니다.

+0

미안하지만 나는 당신을 얻지 못했습니다. 사실 나는 2 타이머 1 감소와 다른 증분을 구현했습니다. 모든 것이 잘되고 일합니다. timer.js에서 볼 수 있듯이 reload.location (true)을 사용하고 있으므로 페이지가 새로 고쳐 지므로 예상 시간이 지나면 두 번째 타이머를 볼 수 있습니다. 즉, 현재 추정 시간이 완료되면 새로 고침이 두 번째 타이머를 확인해야합니다. 하지만 나는 상쾌하게하고 싶지 않습니다. 예상 시간이 완료되면 새로 고치지 않고 두 번째 타이머를 시작해야합니다. – Sam

관련 문제