나는 두 개의 타이머가있는 것처럼 다음 시나리오를 고수했다. 사용자가 로그인하고 그가 어떤 작업을 수행한다면 그는 작업 완료를위한 예상 시간을 언급해야합니다. 예상 시간이 언급되고 작업이 내 응용 프로그램에서 시작되면 자바 스크립트 인 카운트 다운 타이머가 실행되고 첫 번째 타이머가 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이되면 두 번째 타이머가 페이지를 새로 고치지 않고 자동으로 시작됩니다.
도와주세요. 모든 종류의 도움을 환영합니다.
처음에는 정확한 정보를 추가 했으므로 내 질문이 불완전하게 제출되었습니다. 한번보세요. 불편을 드려 죄송합니다. – Sam