我在index.ejs文件中定义了一个ejs变量,名为"完成"并检查用户是否使用以下内容填写了日记:
<% if (complete == false) { %>
<button class="new_journal">Fill Out Journal<i class="fa fa-plus" aria-hidden="true"></i></button>
<% } else { %>
<div class="new_journal2">You Already Filled Out Your Journal</div>
<% }% >
在我的JavaScript文件中,我将以下功能倒计时24小时,然后更改&#34;完成&#34;为假:
var hour = 23;
var minutes = 59;
var seconds = 60;
var value = 1;
setInterval(function(){
var time = document.getElementById('timer').innerHTML = "Hours: " + hour +
" Minutes: " + minutes + " Seconds: " + seconds;
seconds -= 1;
if(seconds == 0) {
minutes -= 1;
seconds = 60;
};
if(minutes == 0) {
hour -= 1;
minutes = 60;
};
if(hours == 0) {
complete = false;
}
}, 1000);
但是,当计时器达到0时,它不会改变完成的值。
答案 0 :(得分:1)
您正在以错误的方式混淆客户端javascript和EJS。 根据您的代码,您提到的javascript在客户端运行,您提到的EJS代码将在服务器端运行,因此此时它无法读取完整的变量值。
我看到你在#timer中有一个日期值,所以我希望你把数据服务器端放在哪里,用它来在服务器端而不是客户端派生完整的变量值。