onclick 函数不适用于 JSFiddle 但适用于 CodePen
onclick function not working on JSFiddle but working on CodePen
我正在处理一个计时器代码,但遇到了问题, 对此也有疑问。经过讨论,感谢@James,我发现是JSFiddle问题。
JSFiddle Link: http://jsfiddle.net/RajeshDixit/0gvfc5yy/4/
CodePen Link: http://codepen.io/rajesh_dixit/pen/RWBowQ
当你在 JSFiddle 上 运行 时,你会得到以下错误
Uncaught ReferenceError: startTimer is not defined
但在 CodePen 和下面的代码片段中运行良好。
function timer() {
var time = {
sec: 00,
min: 00,
hr: 00
}
var max = 59;
var interval = null;
function update(str) {
time[str]++;
time[str] = time[str] % 60;
if (time[str] == 0) {
str == "sec" ? update("min") : update("hr");
}
print(str);
}
function print(str) {
var _time = time[str].toString().length == 1 ? "0" + time[str] : time[str];
document.getElementById("lbl" + str).innerHTML = _time;
}
function initInterval() {
interval = setInterval(function () {
update("sec");
}, 1000);
}
function stopTimer() {
clearInterval(interval);
}
return {
'init': initInterval,
'stop': stopTimer
}
};
var time = new timer();
function startTimer() {
time.init();
}
function endTimer() {
time.stop();
}
<div> <span id="lblhr">00</span>
: <span id="lblmin">00</span>
: <span id="lblsec">00</span>
</div>
<button onclick="startTimer()">Start</button>
<button onclick="endTimer()">Stop</button>
在jsFiddle中,可以配置JS加载选项。将其从 onload
更改为 in <head>
标记。有效,检查 this 更新了一个。
点击此处JSFiddle documentation了解更多信息。
我正在处理一个计时器代码,但遇到了问题,
JSFiddle Link: http://jsfiddle.net/RajeshDixit/0gvfc5yy/4/
CodePen Link: http://codepen.io/rajesh_dixit/pen/RWBowQ
当你在 JSFiddle 上 运行 时,你会得到以下错误
Uncaught ReferenceError: startTimer is not defined
但在 CodePen 和下面的代码片段中运行良好。
function timer() {
var time = {
sec: 00,
min: 00,
hr: 00
}
var max = 59;
var interval = null;
function update(str) {
time[str]++;
time[str] = time[str] % 60;
if (time[str] == 0) {
str == "sec" ? update("min") : update("hr");
}
print(str);
}
function print(str) {
var _time = time[str].toString().length == 1 ? "0" + time[str] : time[str];
document.getElementById("lbl" + str).innerHTML = _time;
}
function initInterval() {
interval = setInterval(function () {
update("sec");
}, 1000);
}
function stopTimer() {
clearInterval(interval);
}
return {
'init': initInterval,
'stop': stopTimer
}
};
var time = new timer();
function startTimer() {
time.init();
}
function endTimer() {
time.stop();
}
<div> <span id="lblhr">00</span>
: <span id="lblmin">00</span>
: <span id="lblsec">00</span>
</div>
<button onclick="startTimer()">Start</button>
<button onclick="endTimer()">Stop</button>
在jsFiddle中,可以配置JS加载选项。将其从 onload
更改为 in <head>
标记。有效,检查 this 更新了一个。
点击此处JSFiddle documentation了解更多信息。