onclick函数不适用于JSFiddle,但适用于CodePen



我正在编写一个Timer代码,遇到了问题,并发布了一个关于它的问题。经过讨论,感谢@James,我发现这是JSFiddle问题。

JSFiddle链接:http://jsfiddle.net/RajeshDixit/0gvfc5yy/4/

CodePen链接:http://codepen.io/rajesh_dixit/pen/RWBowQ

当你在JSFiddle上运行它时,你会得到以下错误

未捕获引用错误:未定义startTimer

但在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>标签。它工作,检查这个更新的。

请查看此处的JSFiddle文档以了解更多信息。

最新更新