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);

また、スコープ内で実行するtickにはthislang.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 に答える