0

我有一个创建简单时钟的 javascript 代码。

define([
    "dojo/_base/declare",
    "dojo/dom",
    "dojo/date/locale",
    "dojo/_base/event"
], 
function(declare, dom, locale, event) {
    return declare([], {
        ...
        ...
        createClock : function() {
            html_time = dom.byId("time");
            window.setInterval(this.tick(), 1000);
        }
    });
});

JS 代码工作正常!另外,我有一个html代码:

<body>
    <script>
        require([ "gui/common/Clock"
        ],
        function(Clock) {
            var clock = new Clock();
            clock.createClock();
        });
    </script>
    Current time: <span id="time"></span>
    ...

但是,如果我在浏览器中运行代码,则会出现错误:

Error: useless setInterval call (missing quotes around argument?)
[Break On This Error]   

window.setInterval(this.tick(), 1000);

在浏览器中会出现时间,但不会打勾。任何人都可以解释我的问题是什么?

4

1 回答 1

1

不执行该方法:window.setInterval(this.tick, 1000);

同样要tickthis范围内执行,请使用lang.hitchas ofdojo/_base/lang模块:

window.setInterval(lang.hitch(this, "tick"), 1000);

您可以在我对How to do something while a dojo xhr request is waiting or loading 的回答中找到一些灵感。

于 2012-09-28T18:50:17.217 回答