JavaScript计数器不起作用
JavaScript counter doesn't work
我做了一个这样的JavaScript计数器:
window.onload = function(){
var target_date = new Date("Aug, 15, 2019").getTime();
}
var days, hours, minutes, seconds;
var countdown = document.getElementById("countdown");
setInterval(function (){
var current_date = new Date().getTime();
var seconds_left = (target_date - current_date) / 1000;
days = parseInt(seconds_left / 86400);
seconds_left = seconds_left % 86400;
hours = parseInt(seconds_left / 3600);
seconds_left = seconds_left % 3600;
minutes = parseInt(seconds_left / 60);
seconds = parseInt(seconds_left % 60);
countdown.innerHTML= days + "d, " + hours + "h, " + minutes + "m, " + seconds + "s";
}, 1000);
.HTML:
<span id="countdown"></span>
浏览器(谷歌Chorme)说:
Uncaught ReferenceError: target_date is not defined
即使我删除了window.onload = function(){}
,仍然不起作用。我做错了什么?
这一切都与变量作用域有关。在这里,您的target_date
在您的window.onload
中定义,使其成为该函数的本地。如果要在该函数外部使用该变量,请通过将变量移到函数外部来全局声明它:
var target_date; /* Declared globally. */
window.onload = function(){
target_date = new Date("Aug, 15, 2019").getTime();
}
将第一个"}"
更改为脚本末尾
window.onload = function(){
var target_date = new Date("Aug, 15, 2019").getTime();
var days, hours, minutes, seconds;
var countdown = document.getElementById("countdown");
setInterval(function (){
var current_date = new Date().getTime();
var seconds_left = (target_date - current_date) / 1000;
days = parseInt(seconds_left / 86400);
seconds_left = seconds_left % 86400;
hours = parseInt(seconds_left / 3600);
seconds_left = seconds_left % 3600;
minutes = parseInt(seconds_left / 60);
seconds = parseInt(seconds_left % 60);
countdown.innerHTML= days + "d, " + hours + "h, " + minutes + "m, " + seconds + "s";
}, 1000);
}
只需将窗口的大括号"}"
移动到脚本的末尾
window.onload = function(){
var target_date = new Date("Aug, 15, 2019").getTime();
var days, hours, minutes, seconds;
var countdown = document.getElementById("countdown");
setInterval(function (){
var current_date = new Date().getTime();
var seconds_left = (target_date - current_date) / 1000;
days = parseInt(seconds_left / 86400);
seconds_left = seconds_left % 86400;
hours = parseInt(seconds_left / 3600);
seconds_left = seconds_left % 3600;
minutes = parseInt(seconds_left / 60);
seconds = parseInt(seconds_left % 60);
countdown.innerHTML= days + "d, " + hours + "h, " + minutes + "m, " + seconds + "s";
}, 1000);
}
相关文章:
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- 监视函数从服务返回不起作用,但作用域函数起作用
- 幻灯片滚动javascript不起作用
- 简单的javascript在Shopify中不起作用
- Recaptcha在IE7和IE8中不起作用
- Ember Data DS.Model's set函数不起作用
- JsFiddle上的鼠标事件不起作用
- 我的AngularJS表达式没有'不起作用
- 点击按钮输入不起作用
- 面向对象的Javascript代码在IE7中不起作用
- 分部隐藏在jquery中不起作用
- 在phonegap应用程序内部重定向不起作用
- Array.length似乎不起作用;console.log则显示其他情况
- $ionicplatform内的$scope不;不起作用
- 计数器在 jQuery 中不起作用
- JavaScript计数器不起作用
- 我有一个基于计数器的 if/else 语句,但由于某种原因,else 不起作用
- 元音计数器在Pure js中不起作用
- Angularjs的记分计数器不起作用
- 字符计数器在表中重复回显时不起作用