在 RaphaelJS 的 setInterval 中更改文本

Changing text in setInterval in RaphaelJS

基本上我是 JavaScript 的新手,试图创建一个数字手表,我几乎已经完成了,但是时间每次都会自己写第二,不是替换上一次,这是我代码中涉及的部分,你能指出我哪里错了吗!谢谢

P.S: 我正在使用 raphael 库

setInterval(function(){
  var d = new Date();
  var h = d.getHours();
  var m = d.getMinutes();
  var s = d.getSeconds();

  if (h<10){h="0"+h};
  if (m<10){m="0"+m};
  if (s<10){s="0"+s};

  time = h+":"+m+":"+s;
  var digi = paper.text(110, 250, time).attr({"font-size": 15, "fill": "#000080"});
}, 1000);

我试过放线

digi.attr({'text': time});

在函数关闭之前,但这并没有奏效。任何帮助都会很棒!

您需要删除旧元素,或者只更改其属性(我认为您的更新版本可能不起作用,因为您将 digi 作为包含在功能范围内的变量,您可以尝试将其设为全局范围或其他. 否则这是一个解决方案...

 var digi;
 ...
 digi && digi.remove();

jsfiddle

在开始打印时间之前清除canvas。

添加这一行:

paper.clear();

在您打印时间的行之前。