Idk为什么添加javascript计时器会破坏我的代码。 44昨天github提交失败44

时间:2014-06-03 19:22:19

标签: javascript html github timer

更新:我要感谢大家的帮助。我从来没有得到代码片段集成,但那是我的错不是你的:)我得到了一些javascript的帮助,我们不仅在bitvote.github com上运行,但我们已经有了第一次采访twitter com / EtherCasts / status / 477566828513099777,积极的社区回应以及本周排名的2个采访! ^ _ ^再次感谢stackexchange!

原始问题:

我想在http://arkbg1.github.io/BitVote/

中将4个javascript计时器插入我的概念验证页面

用户点击“从这里开始”按钮后,一个计时器以毫秒为单位显示“当前时间”,然后是数据输入表,然后是代码日志。我需要它有4个定时器而不是1个。

  1. 注册时间:MM / DD / YYYY hh:mm:ss(静态计数器,捕获用户点击的时间戳。类似于w3schools(。)com / js / tryit.asp?filename = tryjs_date_gettime除外MM / DD / YY hh:mm:ss格式。

  2. 当前时间:MM / DD / YYYY hh:mm:ss(现场直播。类似于w3schools(。)com / js / tryit.asp?filename = tryjs_timing_clock

  3. 花费的投票时间:00:00:00(静态计数器。暂时忽略此信息。)

  4. 可用投票时间:hh:mm:ss(实时计数器,点击后开始基本秒表)

  5. 每当我尝试将w3school代码粘贴到我的github代码中时,按钮/表格脚本就会完全失灵或消失。我昨天尝试了44次提交。 nothings工作,我不知道我在做什么打破当前的代码或如何添加这4个基本的计时器而不破坏页面。

    这里是index.html和js.js - https://github.com/arkbg1/BitVote

1 个答案:

答案 0 :(得分:0)

我的猜测是您在文档完全加载之前尝试使用document.getElementById抓取页面元素。尝试设置运行onload的“主”功能。您可以在JS文件中尝试这样的事情。然后,只要您使用这些原始变量,就可以从state对象获取它们。

var state;
window.onload = function() {
    state = {
        date: new Date(),
        spend_time: document.getElementById("spend_time"),
        button: document.getElementById("button"),
        spend_addr: document.getElementById("spend_addr"),
        power_time: document.getElementById("power_time"),
        progress: document.getElementById("progress"),
        passed: document.getElementById("passed"),
        to_fraction: document.getElementById("to_fraction"),
        amount_note: document.getElementById("amount_note"),
        spend_addr_note: document.getElementById("spend_addr_note"),
        old_spend_val: 0
    };
    voting(from_time() == 0);
    state.spend_time.value= state.old_spend_val;
    update_power_time();
    update_spend_addr();
};

计时器示例

<!DOCTYPE html>

<html>
<head>
    <title>Timer Test</title>
    <script>
        window.onload = function () {
            var container = document.getElementById("container");
            setInterval(function () {
                var now = new Date(),
                    h = now.getHours(),
                    m = now.getMinutes(),
                    s = now.getSeconds();
                if (h < 10) h = "0" + h;
                if (m < 10) m = "0" + m;
                if (s < 10) s = "0" + s;
                container.innerHTML = h + ":" + m + ":" + s;
            }, 500);
        }
    </script>
</head>
<body>
    <div id="container">

    </div>
</body>
</html>